十万条数据查询八秒,给栏目ID加索引,查询降到0.005秒快上千倍

15年前 (2012-07-04)阅读1回复0
genmulu
genmulu
  • 管理员
  • 注册排名1
  • 经验值27950
  • 级别管理员
  • 主题5590
  • 回复0
楼主

新手网站,数据库查询越来越慢,列表页打开要好几秒,查了慢日志,发现是一条查文章的SQL没加索引,查一次要八秒,给字段加了索引,查询时间直接降到0.01秒,网站立刻就快了。

首先,MySQL查数据的时候,如果表里面没有索引,就要一行一行遍历全表,你表里面有十万条数据,就要遍历十万次,慢的要死。给经常用来查询、排序、做条件的字段加个索引,数据库直接通过索引找到对应的行,不用全表扫,速度快几十上百倍。我之前客户的文章表,按栏目ID查文章,没加栏目ID的索引,十万条数据查一次要8秒,加了索引之后,查询只要0.005秒。

新手最容易踩的坑,是随便给所有字段都加索引,索引不是越多越好,每个索引都占磁盘空间,你写新文章、改文章的时候,索引也要跟着更新,索引太多,写入速度就慢。只给经常用来查条件的字段加,比如栏目ID、发布时间、文章ID,别给没人查的字段加索引。

还有,别给区分度特别低的字段加索引,比如一个字段只有是和否两个值,加了索引也没用,数据库还是要扫大部分数据,索引只给那种值比较分散的字段加,比如用户ID、文章ID。

很多新手网站慢,就想着升级服务器,其实90%的慢都是因为没给查询字段加索引,加对一个索引,查询速度快几百倍,服务器不用升级,速度就上来了,比花大价钱升配置划算多了。

本站源码来源于网络收集修改或者交换,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。

本文地址:https://www.genmulu.cn/genmulu/5564.html

0
回帖

十万条数据查询八秒,给栏目ID加索引,查询降到0.005秒快上千倍 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息