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

database

目的

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

借鉴资料:

没用过慢查询日志,别说自己做过数据库优化

慢查询日志概念

记住七个字搞定索引失效问题

发现问题(主动/被动)

问题点:数据库查询过程中速度过慢的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.高并发时段导致等待

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

Hole yor life get everything if you never give up.

以上是 MySQL慢查询优化问题解决办法 的全部内容, 来源链接: utcz.com/z/536289.html

回到顶部