记录因group_concat函数长度限制引起的问题
首先项目里有一条类似这样的sql 123456789101112131415161718select tr.xxx tr.cm_ids, group_concat(te.xxx) a, group_concat(te.xxx) b, group_concat(te.xxx) c, group_concat(te.xxx) d,from (select tr.1, tr.2, tr.3, group_concat(cm_id) cm_ids from xxx tr where tr.xxx = '123' group by tr.1,tr.2,tr.3) tr left join xxx tc on tr.xxx = tc.xxx left join xxx te on tr.xxx = te.xxxgroup by...
Mysql数据备份与恢复
备份 - 从数据库导出数据:格式:mysqldump -h链接ip -P(大写)端口 -u用户名 -p密码数据库名 > d:XX.sql(路径) 示例:mysqldump -h132.72.192.432 -P3307 -uroot -p8888 htgl > bak.sql 备份导出示例:1、导出数据和表结构——将特定数据库特定表中的数据和表格结构和数据全部返回 1mysqldump --u b_user -h 101.3.20.33 -p'H_password' -P3306 database_di up_subjects > 0101_0630_up_subjects.sql 2、导出表结构却不导出表数据——只返回特定数据库特定表格的表格结构,不返回数据,添加“-d”命令参数 1mysqldump --u b_user -h 101.3.20.33 -p'H_password' -P3306 -d database_di up_subjects >...
MYSQL-记录函数和sql(长期)
摘自小骨格子屋的 mysql中的instr()函数的用法 想要在字符串中查找某字符串可以使用instr()函数 instr()返回子字符串在字符串中首次出现的位置;如果没有找到,则返回0 用法:123str:从哪个字符串中搜索substr:要搜索的子字符串instr()函数不区分大小写 mysql instr()函数示例:1如图,在abcd字符串中查找是否含有字符串b,返回的字符串位置是2. 说明instr()函数返回的位置是从1开始的,如果找不到则返回0 查找字符串中包含“民”的记录 instr()函数与like运算符 在没有索引的情况下,instr()函数与like运算符的速度是一样的;在具有前缀搜索的LIKE运算符下,使用like运算符速度会更快一些 SUBSTRING(s,n,len) MySQL 中获取子串函数 SUBSTRING(s,n,len) 带有 len 参数的格式,从字符串 s 返回一个长度同 len 字符相同的子字符串,起始于位置 n。 也可能对 n 使用一个负值。假若这样,则子字符串的位置起始于字符串结尾的第 n 个字符,即倒数第 n...
MySQL中EXPLAIN结果的参数详解
MySQL中EXPLAIN结果的参数详解 explain显示了mysql如何使用索引来处理select语句以及连接表。可以帮助选择更好的索引和写出更优化的查询语句。 EXPLAIN列的解释: select_type123456781) SIMPLE:简单的SELECT,不实用UNION或者子查询。2) PRIMARY:最外层SELECT。3) UNION:第二层,在SELECT之后使用了UNION。4) DEPENDENT UNION:UNION语句中的第二个SELECT,依赖于外部子查询。5) UNION RESULT:UNION的结果。6) SUBQUERY:子查询中的第一个SELECT。7) DEPENDENT SUBQUERY:子查询中的第一个SELECT,取决于外面的查询。8)...
mysql导入导出
导入导出csv文件 常用参数12345常用参数(导入和导出的常用参数一致):FIELDS TERMINATED BY ',':指定字段分隔符OPTIONALLY ENCLOSED BY '"':认为双引号中的是一个独立的字段。Excel 转 CSV 时,有特殊字符(逗号、顿号等)的字段,会自动用双引号引起来LINES TERMINATED BY '\n':指定行分隔符,默认'\n'。注意,在 Windows 平台上创建的文件,分隔符是 '\r\n' 先检查是否开启允许导入1show variables like '%secure%'; 导入12345678LOAD DATA LOCAL INFILE 'data.txt' INTO TABLE db2.my_table;LOAD DATA LOCAL INFILE 'data.txt' INTO TABLE db2.my_table FIELDS...
记录工作中遇到慢sql的情况和解决办法(长期)
left join查询加where条件, 用到了索引, 但是仍然几乎全表扫, explain-type为index, 用到的索引为联合索引,但where条件字段不符合最左原则(例如索引是key index (a,b,c). 可以支持a | a,b| a,b,c 3种组合进行查找,但不支持 b,c进行查找), 所以最后解决办法是建立了条件字段的索引 单表同时查询多个字段和聚合函数的时候, 建立一个聚合索引(包含聚合函数字段)可能比单个字段索引效率要高(单个字段会回表)
mysql5.7安装
MySQL5.7docker安装mysql docker pull mysql:5.7 123456docker run -p 3306:3306 --name mysql \-v /mydata/mysql/log:/var/log/mysql \-v /mydata/mysql/data:/var/lib/mysal \-v /mydata/mysql/conf:/etc/mysql \-e MYSQL_ROOT_PASSWORD=root \-d mysql:5.7 vi /mydata/mysql/conf/my.cnf1234567891011[client]default-character-set=utf8[mysql] default-character-set=utf8[mysqld]init_connect='SET collation_connection=utf8_unicode_ci'init_connect='SET NAMES...
mysql命令行各个参数解释
http://blog.51yip.com/mysql/1056.html mysql命令行各个参数解释123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081Usage: mysql [OPTIONS] [database] //命令方式 -?, --help //显示帮助信息并退出 -I, --help //显示帮助信息并退出 --auto-rehash //自动补全功能,就像linux里面,按Tab键出提示差不多,下面有例子 -A, --no-auto-rehash //默认状态是没有自动补全功能的。-A就是不要自动补全功能 -B, --batch //ysql不使用历史文件,禁用交互 (Enables --silent) ...
