问题排查:单表3000笔数据查询竟然要2秒?
生活随笔
收集整理的這篇文章主要介紹了
问题排查:单表3000笔数据查询竟然要2秒?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
事情是這樣的:線上環境有個單表,數據才3000多筆,每次按條件過濾都要2秒左右,簡直無法理解。抱著好奇心,我決定研究一下到底是什么情況。
索引分析
explain select * from **** ,發現并沒有走索引。
將索引加上之后,速度從2秒變成0.1秒不到。
但是呢,正常情況下3000筆數據就算不走索引,查詢也應該是毫秒級響應,所以繼續排查其他原因
表結構分析
查看該表的字段,發現有個 LongText 類型的字段 props,存儲了大量JSON數據和BASE64的圖片(不要問我為什么這樣存,有些項目就是這么的匪夷所思!!!!)此外,整張表雖然才3000多筆數據,但是占用空間達到了2G,就是拜LongText字段所賜。
我們將 props 字段從 select 返回的字段中移除,發現速度飛快,但是這個字段又是必須的,那怎么解決呢?
解決方案
方案一: 根據where條件創建索引,上面演示過了
方案二:把 props 字段放到單獨的表,先把對應的 id 都查出來,再去這張表取出需要的 props 數據,可以大大地減少 LongText 字段的掃描次數。
總結
以上是生活随笔為你收集整理的问题排查:单表3000笔数据查询竟然要2秒?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux使用vsftpd搭建FTP服务
- 下一篇: 问题排查:vue项目刷新页面加载了500