专栏名称: 数据分析与开发
伯乐在线旗下账号,分享数据库相关技术文章、教程和工具,另外还包括数据库相关的工作。偶尔也谈谈程序员人生 :)
目录
相关文章推荐
非法加冯  ·  对比Oracle与PostgreSQL事务系统 ·  昨天  
Alibaba Cloud International  ·  刷新世界纪录!阿里云PolarDB凭借创新的 ... ·  昨天  
Alibaba Cloud International  ·  刷新世界纪录!阿里云PolarDB凭借创新的 ... ·  昨天  
数据中心运维管理  ·  能源行业加大力度解决数据中心电力短缺问题 ·  2 天前  
数据中心运维管理  ·  电缆管理为何如此重要? ·  5 天前  
数据中心运维管理  ·  机房工程数据中心安装施工工程工艺手册 ·  3 天前  
51好读  ›  专栏  ›  数据分析与开发

如何将 MySQL 查询速度提升 300 倍

数据分析与开发  · 公众号  · 数据库  · 2017-05-10 20:05

正文

(点击 上方公众号 ,可快速关注)


原文:opensource,编译:开源中国

www.oschina.net/translate/speed-your-mysql-queries-300-times

如有好文章投稿,请点击 → 这里了解详情


在进行性能分析前,需要先定位耗时查询。


MySQL 提供了内建的耗时查询日志。使用前,打开 my.cnf 文件,将slow_query_log 设置为”On”。 同时将 long_query_time 设置为一个对一次查询来说比较慢的时间(秒数),比如 0.2。slow_query_log_file 设置为你想保存日志文件的路径。然后运行代码,执行时间超过设定上限的查询将会被记录到日志中。


一旦定位这些烦人的查询,就可以探究慢的原因。MySQL提供了EXPLAIN关键字。可以与SELECT、DELETE、INSERT、REPLACE、UPDATE语句一起使用。只需要如下一样添加到查询开始处:


EXPLAIN SELECT picture . id , picture . title

FROM picture

LEFT JOIN album ON picture . album _ id = album . id WHERE album . user _ id = 1 ;


结果是对数据访问过程的解析。每行代表一个查询相关的数据表:



重点是表名、使用的key、查询执行时所扫描的行数。








请到「今天看啥」查看全文