MySQL优化之索引的力量-澳门银河娱乐场_澳门银河官网_澳门银河博彩官方网址

澳门银河娱乐场_澳门银河官网_澳门银河博彩官方网址 澳门银河博彩官方网址拥有丰富多样的游戏产品,同时为客户提供最新最全最正规的在线娱乐体验澳门银河博彩官方网址官方网站,老品牌值得信赖。

MySQL优化之索引的力量

由于兴趣爱好和日常使用需要,对MySQL的使用频率并不算低,但是涉及到MySQL性能优化方面,还是第一次,感到非常神奇,特发文共赏之。

环境:WAMP,PHP+MySQL,本地。

事情的起因是需要帮朋友写一个程序,用于抓取足彩数据,以便计算。数据从2012年1月1日开始抓取,到目前也有2W多场比赛,这样数据库就需要存储比赛数据2W多条,而另一边,一场比赛对应4条分析数据,就是2W*4=8W条数据了,加一起也得10W以上条数,内容上倒是不大,现在还没采集完,预计采集完10W多条数据,数据库也就10M左右。但是该有的问题还是碰到了,采集分析数据,用自循环让php自动抓取,刚开始都很正常,当分析数据采集到4W左右的时候,读取数据库就变得非常慢:

 

前一个是读取数据库的时间,后一个是 读取数据库+处理采集+入库 的时间,采集入库部分一直很稳定,维持在10秒左右,读取数据库从刚开始的0.0X到现在的60秒。要知道我一次也就处理20条比赛数据,插入80条分析数据,一次执行时间就要1分钟,8W分析数据我就要花费1000分钟,换算成小时就是接近17个小时,而且越往后越慢这一点我也没算进去。这样下去肯定不行,只能考虑MySQL优化了,搜索了一下,最简单的就是MySQL索引了,简单不说,性能提升明显,看网上的例子,查询时间缩短了2/3。

继续搜资料:

MySQL 5.1参考手册:http://dev.mysql.com/doc/refman/5.1/zh/index.html

理解MySQL——索引与优化:http://www.cnblogs.com/hustcat/archive/2009/10/28/1591648.html
这个讲的比手册要通俗一些,但是对于我这样急于投入使用,不想过多研究处理细节的人来说,就有点啰嗦了

详解MySQL中EXPLAIN解释命令:http://database.51cto.com/art/200912/168453.htm
翻手册时看到这个EXPLAIN,顺手搜了下,感觉挺有用的,作为参考

最终还是自己来摸索吧,因为需要join查询,那么就用2个表的关联字段进行索引试试,命令什么的我也懒的弄,直接在phpmyadmin上,在对应字段上点索引,用原来的查询语句丢到phpmyadmin上查询下,速度还行,不知道投入循环会如何:

 

呃。。。。说实话夜火我是被惊到了,幸福来的太突然不知道怎么表达了。我除了查资料,点了下索引外,就几乎没动什么东西,查询速度直接从要命的60多秒,缩短到0.05秒,执行速度还是10秒左右。这差距,可不止网上说的2/3了,想想之前估算的17个小时,简直不可以道里计,科学是第一生产力,真没说错啊。突然发现MySQL优化也挺好玩的,我之前都一直停留在日常使用,没有关注过这一块,但是一看手册,密密麻麻,非常高深啊,需要学习的还很多啊。

PS. CodeIgniter的系列文章,拖呀拖,拖到现在大半年都过去了,不是没下工夫,草稿都有好几篇了,但是一直都不满意,原创文章也不是那么好写,花时间花精力,写一篇真的不易。有很多日常的技巧、感悟,因为懒得写文章,没有分享出来,事后想写又没有当时的感觉了,索性有感觉就写吧。

 

留言列表
发表评论
来宾的头像