数据库表没加索引,查个文章列表要三秒,加完索引直接变毫秒级

5年前 (2021-09-23)阅读1回复0
genmulu
genmulu
  • 管理员
  • 注册排名1
  • 经验值27950
  • 级别管理员
  • 主题5590
  • 回复0
楼主

之前写文章列表接口,一开始数据库才几百条数据,查询速度飞快,我根本没想着加索引。等网站运营了半年,数据库攒了十万条文章数据,打开文章列表要三秒,数据库CPU直接跑到80%,我一开始以为是查询逻辑写得有问题,优化了半天还是慢。后来用explain看执行计划,才发现我按分类id查文章的时候,分类id字段根本没加索引,数据库每次查都全表扫十万行数据,能不慢吗。 我给经常用来查询的字段:分类id、发布时间、文章id,全加上普通索引,加完之后再查列表,执行时间从三秒直接降到0.01秒,数据库CPU占用直接掉到10%,我当时都傻了,就加了几个索引,效果差这么多。之前我总觉得,索引是大数据量才需要加的,小表无所谓,结果十万行的数据量,没加索引直接把数据库拖垮。 从那之后我建表的时候,先想清楚哪些字段是经常用来查、用来排序的,直接把索引加上,比如文章按分类查、按时间排序,那就给分类id、发布时间加索引,再也不等数据攒了一堆才想起来加。现在我帮新手看慢查询,90%的情况就是没加索引,全表扫大表,导致数据库慢,加完索引直接就好。 很多新手学数据库,知道索引能提速,但总觉得自己表小,加不加无所谓,等数据量到十万、百万行,没加索引的表直接就能把数据库打挂。真的,写表的时候顺手把常用查询字段的索引加上,五分钟的事,能避免后面网站人多了数据库卡死的大问题。

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

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

0
回帖

数据库表没加索引,查个文章列表要三秒,加完索引直接变毫秒级 期待您的回复!

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

取消确定

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