本文摘自PHP中文网,作者藏色散人,侵删。
一、总体优化思路首先构建脚本观察查询数,连接数等数据,确定环境原因以及内部SQL执行原因,然后根据具体原因做具体处理。
推荐:《mysql视频教程》
二、构建脚本观察状态
1 | mysqladmin -uroot -p ext \G
|
该命令可获取当前查询数量等信息,定时轮询并将结果重定向到文本中,然后处理成图表。
三、处理对策
1.若是规律性出现查询慢,考虑缓存雪崩问题。
对于该问题只需将缓存的失效时间处理成不要相近时间同时失效,失效时间尽量离散化,或者集中到午夜失效。
2.若非规律性查询缓慢,考虑设计缺乏优化
处理方法:
a:开启profiling记录查询操作,并获取语句执行详细信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | show variables like '%profiling%' ;
set profiling=on;
select count (*) from user;
show profiles;
show profile for query 1;
>>>
+--------------------------------+----------+
| Status | Duration |
+--------------------------------+----------+
| starting | 0.000060 |
| Executing hook on transaction | 0.000004 |
| starting | 0.000049 |
| checking permissions | 0.000007 |
| Opening tables | 0.000192 |
| init | 0.000006 |
| System lock | 0.000009 |
| optimizing | 0.000005 |
| statistics | 0.000014 |
| preparing | 0.000017 |
| executing | 0.001111 |
| end | 0.000006 |
| query end | 0.000003 |
| waiting for handler commit | 0.000015 |
| closing tables | 0.000011 |
| freeing items | 0.000085 |
| cleaning up | 0.000008 |
+--------------------------------+----------+
|
b:使用explain 查看语句执行情况,索引使用,扫描范围等等
阅读剩余部分
相关阅读 >>
mysql的增删改查常用语法
怎么用mysql打开数据库
mysql索引命中规则讲解
mysql5.5怎么安装
mysql怎么导出数据
mysql中的布尔值,怎么存储false或true
windows如何启动mysql
mysql5.7.33安装过程图文详解
mysql如何手动获取自增主键
mysql数据库绿色版出现系统错误1067怎么办?
更多相关阅读请进入《mysql》频道 >>
机械工业出版社
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
转载请注明出处:木庄网络博客 » 分享Mysql优化思路