? 关键字; 用多了会觉得离不开它。
一、索引注意事项
1)like查询中 不以%开头,索引才可能被使用
2)and、or 前后的字段都有索引的时候,查询才会用到索引
3)如果字段是字符类型,而条件给的是数字类型,索引也会失效
二、快速导入和导出数据(outfile infile)
select * from t1 into "/tmp/t1.sql";
load data infile '/tmp/b.txt' into table t1;自动适应列
load data infile '/tmp/b.txt' into table t1(name); 导入到name列
如果是innodb 先关闭自动提交,最后统一提交
set autocommit=0
load data ...
set autocommit=1
三、锁
读锁(任何人不能增删改 只能查)
lock table t1 read;
unlock tables;
写锁(自己可以增删改查 别人不可以)
lock table t1 write;
四、字符集
\s 查看四种字符集(\h 查看所有类似的短命令,常用的\c \d \s)
设置字符集(my.cnf中设置)
[client]
default-character-set=utf8 客户端字符集
[mysqld]
character-set-server=utf8 服务器、数据库 字符集
collation-server=utf8_general_ci 校验字符集
show character set; 查看某个字符集的校验字符集名称
五、慢查询
show variables like "%slow%"; 慢查询是否开启(log_slow_queries)
show variables like "%long%"; 慢查询默认时间
show status like "slow_queries"; 慢查询的次数
desc sql语句 分析sql语句,根据实际情况确定是否要创建索引
[mysqld]
log_slow_queries=slow.log 开启慢查询
long_query_time=5 规定超过5秒的查询为慢查询
重启生效
六、查看增删改查的次数
show status like 'com_select[delete,update,insert]%'; 查看增删改查的次数(本次登录以来的操作)
show global status like 'com_select[delete,update,insert]%'; 查看增删改查的次数(服务器启动以来的操作)
show status like 'innodb_rows%'; 针对innodb存储引擎(影响的行数)
七、其他
show status like "connections"; 连接mysql的次数
show status like "uptime"; mysql已经工作的秒数