- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
一次mysql查询优化过程-evanxia
一次Mysql 查询优化过程
By evanxia
2016.06.27
背景:应项目需求,目前有一个业务需要每分钟向数据库中插入一批数据,然后另一个程序会从数据库中读取某一时间段内,某些特征的数据。随着时间的积累,数据量提升,查询时间爆发式增加,不得不优化数据库。本次优化只考虑了特定的查询优化,没有考虑优化后插入效率,为了减轻影响批量插入时采用的是一条insert...values(),()...形式语句。以下记录查询优化过程。
准备
先介绍一下,可能会使用到的mysql相关的工具。
清除查询缓存:
reset query cache;
清理查询缓存碎片以提高内存使用性能:
FLUSH QUERY CACHE;
MySQL查询分析器:
EXPLAIN或DESC
二、简单测试
2.1、环境
数据库:
mysql Ver 14.14 Distrib 5.5.49, for debian-linux-gnu (x86_64) using readline 6.3
数据:
2801178条记录
腾讯云服务器:
Linux VM-122-135-ubuntu 3.13.0-36-generic
#63-Ubuntu SMP Wed Sep 3 21:30:07 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
资源[dmidecode |more]:
CPU:单核,最大 2000 MHz
内存: 1 GB
2.2、测试
1、未加索引
A、EXPLAIN SELECT id, connect_count, total_count, monitor_rate,`time`,CAST((connect_count/ total_count)*100
AS UNSIGNED) as rate FROM statistics_data where statistics_id in (20,21,22, 23, 24, 25) and `time` between
1469319304 and 1469405704 order by `time`;
2、建立time索引
ALTER TABLE `statistics_data` ADD INDEX ( `time` ) ;
清空缓存:reset query cache;
检索:
A、EXPLAIN SELECT id, connect_count, total_count, monitor_rate,`time`,CAST((connect_count/ total_count)*100 AS UNSIGNED) as rate FROM statistics_data where statistics_id in (20,21,22, 23, 24, 25) and `time` between 1469319304 and 1469405704 order by `time`;
B、分析发现没有使用time索引,所以强制使用
EXPLAIN SELECT id, connect_count, total_count, monitor_rate,`time`,CAST((connect_count/ total_count)*100 AS UNSIGNED) as rate FROM statistics_data force index (time) where statistics_id in (20,21,22, 23, 24, 25) and `time` between 1469319304 and 1469405704 order by `time`;
3、between换为
清空缓存:reset query cache;
检索:
EXPLAIN SELECT id, connect_count, total_count, monitor_rate,`time`,CAST((connect_count/ total_count)*100 AS UNSIGNED) as rate FROM statistics_data where statistics_id in (20,21,22, 23, 24, 25) and `time` 1469319304 and `time` 1469405704 order by `time`;
4、建立statistics_id索引
ALTER TABLE `statistics_data` ADD INDEX ( `statistics_id` ) ;
清空缓存:reset query cache;
检索
EXPLAIN SELECT id, connect_count, total_c
您可能关注的文档
- 2003期-河北香河一中.doc
- 2004年科研成果大会-南宁第十四中学.ppt
- 2001年浦东新区新长征突击队-浦东新区团委.pdf
- 2005年科研大会课件.ppt
- 2006世界企业永续发展协会wbcsd北京代表大会聚焦东方特别.pdf
- 2002010年学生参加技能大赛佐证材料-济南工程职业技术学院.pdf
- 2005年全国希望杯数学竞赛高二年级.ppt
- 2007-2008学年华大中文学校课程简介-华大三藩中文学校huada.pdf
- 2007下高等教育自学考试-南京信息工程大学.ppt
- 2008年5月份客运简报-汕头汽车客运中心站.doc
- 一种xml多分支路径索引查询算法-南京师范大学学报.pdf
- 一种基于pso-fcm的网络虚拟环境信息推荐算法-福州大学学报.pdf
- 一种图像加密算法的密码学分析-汕头大学数学系.pdf
- 一种基于lbpv局部二值模式方差的指纹分类算法-南华大学学报.pdf
- 一种基于多关系的朴素贝叶斯空间分类算法-云南民族大学学报.pdf
- 一基于swot鄄ahp模型的胜利油田绿色发展战略研究.pdf
- 一种基于过滤器的无线传感器网络复杂查询优化算法-journalof.pdf
- 一种小型电阻应变式三维力传感器的仿真设计-中国机械工程.pdf
- 一种指定接收人的代理多重签名方案-杭州师范大学学报.pdf
- 一种新的快速排序算法———位置计算法1.pdf
文档评论(0)