mysql慢查询及查询优化
mysql默认是没有开启慢查询的
1 查看慢查询的配置状态
show variables like 'slow_query%';
slow_query_log 慢查询开启状态
slow_query_log_file 慢查询日志存放的位置(这个目录需要MySQL的运行帐号的可写权限,一般设置为MySQL的数据存放目录)
2 开启慢查询并设置慢查询的时间限制
set global slow_query_log='ON';
set global long_query_time=1;
3 查看慢查询的日志
cat /var/lib/mysql/localhost-slow.log
查询优化
1 如果条件中有or,即使其中有条件带索引,索引也不会生效,要想让索引生效,只能将or条件中的每个列都加上索引
2 对于联合索引,要使用索引的第一部分,否则不会走索引
3 在有普通索引的列,like查询以%开头不会走索引,以%结尾会走索引
4 如果列类型是字符串,那一定要在条件中将数据使用引号引用起来,否则不会走索引
5 如果mysql估计使用全表扫描要比使用索引快,则不使用索引