mysql数据库优化之语句优化
数据库优化目的 避免出现页面访问错误 1、由于数据库链接timeout产生页面5xxx错我 2、由于慢查询造成页面无法加载 3、由于阻塞造成数据无法提交 如何发现有问题的sql 使用mysql慢查日志对有效率问题的sql进行监控 show variables like '%slow%'; set global log_queries_not_using_indexes=on; 代表 记录下没有使用索引的sql 后面进行优化 ,记录未使用索引的 打开 long_query_time 单位是秒 一般设置成100ms,也就是0.1秒 如果慢查日志时间短,会有大量的日志,磁盘空间可能会被沾满 第一款MySQL官方的mysqldumpslow 分析慢查工具 安装好mysql后自带的工具,mysqldumpslow -t 3 慢查日志路径 | more 查看 但是结果信息不是很全面 所以用pt-query-digest --limit=A 参数 -review expain 执行计划 如扫描行数很多,发送到客户端的很少,代表了索引不是很好 第一部分是头显示了基本信息,时间范围 sql数量 第二部表统计信息 第三部分 sql信息 举例说明 就是,这个sql 执行了一次,但是执行时间占用了百分之73百分比,这种sql重点关注,就是执行次数多,占用总时间的百分比大。数据库主要瓶颈在io这