百木园-与人分享,
就是让自己快乐。

MySQL慢查询优化问题-解决办法

目的

根据发现的问题,找到原因,然后对症下药

借鉴资料:
没用过慢查询日志,别说自己做过数据库优化
慢查询日志概念
记住七个字搞定索引失效问题

发现问题(主动/被动)

问题点:数据库查询过程中速度过慢的SQL语句

主动:数据库默认情况下slow_query_log的值为OFF,表示慢查询日志是禁用的

mysql> show variables like \'%slow_query_log%\';
+---------------------+-----------------------------------------------+
| Variable_name | Value |
+---------------------+-----------------------------------------------+
| slow_query_log | OFF |
| slow_query_log_file | /home/WDPM/MysqlData/mysql/DB-Server-slow.log |
+---------------------+-----------------------------------------------+
2 rows in set (0.00 sec)

mysql> set global slow_query_log=1;
Query OK, 0 rows affected (0.09 sec)

mysql> show variables like \'%slow_query_log%\';
+---------------------+-----------------------------------------------+
| Variable_name | Value |
+---------------------+-----------------------------------------------+
| slow_query_log | ON |
| slow_query_log_file | /home/WDPM/MysqlData/mysql/DB-Server-slow.log |
+---------------------+-----------------------------------------------+
2 rows in set (0.00 sec)

被动:用户在使用程序时候告知页面反应慢

找到原因-对症下药

原因点:没有加索引、索引失效、SQL极度复杂、高并发

1.表结构设计时没有索引导致

2.SQL语句导致索引失效

索引失效7字口诀:
模:模糊查询LIKE以%开头
型:数据类型错误
数:对索引字段使用内部函数
空:索引列是NULL
运:索引列进行四则运算
最:复合索引不按索引列最左开始查找
快:全表查找预计比索引更快

3.SQL极度复杂10张以上表联合查询

优化表结构和程序

4.高并发时段导致等待

在程序和数据库之间加入缓存

来源:https://www.cnblogs.com/1fengchen1/p/15909410.html
图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » MySQL慢查询优化问题-解决办法

相关推荐

  • 暂无文章