关注互联网、IT技术!

mysql数据库建立索引提升查询速度但是count(*)依旧很慢

  •  admin
  •  2011-10-21 08:10:22
  •     
给网站添加了论坛,论坛很简陋,只是实现了基本的发帖回帖,发站内信,回帖提醒等等基本的功能,大家可以去看一下我做的这个简陋的论坛 http://www.ygtuan.com/forum/index.php 目前用着还行,没出什么问题。但是我在自己电脑上测试了一下大数据量查询,结果慢的一塌糊涂。从十万个帖子中查询,就要近2秒的时间,页面打开慢死。 很明显,是因为数据库里没加索引。没正经的学过数据库的知识,目前使用水平也仅仅是基本的查询、更新、删除操作,没深入了解过性能。于是网上搜索了一小下,发现加索引是件很简单的事情。 我总结了一下几个基本规则: 1、索引要加在where条件语句的列上 2、只对频繁使用到的列加索引,不要盲目的加一大堆,否则会增加更新数据库的复杂性,也会浪费磁盘空间 3、建立N列索引时,遵循最左前缀原则,多列索引可起几个索引的作用,因为可利用索引中最左边的列集来匹配行 加好索引后,在十万条帖子中查询速度基本小于0.01秒,页面打开速度刷刷的,那是相当流畅! 其实我最想解决的是计算某些类型帖子的行数过慢问题,论坛首页,要显示各个版块的帖子总数,我使用用count()函数计算的,不管怎么优化,计算速度始终要1秒钟以上,一段代码中,有几个count(),慢的要死。看来这样的设计很失败,没经验啊!!!! 最后我能想出的解决方法,就是在数据库里建立保存帖子数量的字段,每当发布帖子或者回复的时候,就将对应的值+1,删除的时候,就-1,要改的地方很多,周末我就着手实现。    

相关文章

评论

称呼(可以不填)
Email(可以不填)
链接(可以不填)
请输入评论内容*