mysql優化的一點感悟

背景:每張數據表約80W條,按照日期生成,對應用戶在遊戲中的各類操作。

常規的優化方式

1. 根據常用檢索字段建立索引

按照實際測試,不加其餘任何操作,未建立索引的情況下,80W條數據,select語句耗時0.3-0.5s左右,建立索引後並未有很大提升(也許是數據總量依然過低),平均耗時只能降低0.0Xs。

2.根據需求儘量精確查詢字段、並儘量多的加入條件語句

根據實際測試,未建立索引的情況下,select *,比select id,基本耗時會增加0.1-2s,where條件越精確,過濾越多,查詢越快。

實用的方式

1.儘量採用程序內置函數去操作結果,數據庫只做基本的檢索

項目中因爲用到了非常多的連接甚至跨表查詢,按照實際測試情況,一條能符合我們需求的sql語句,檢索時間是5-6s….未加索引,加索引並沒有很大的差別。但是若採用php內置數組函數去合併、交集、差集、過濾、去重等,等待時間則可以縮短至2-3s,提升50%。

2.對於連續的過濾條件,例如檢索字段插入時間從3月1日-3月15日的數據,使用between而非大於、小於

實際測試,同樣的數據量,大於、小於要比between慢50%以上。

3.如果對於時效性沒有嚴格的要求,可以開啓mysql配置文件中的查詢緩存

去除忘了消耗,除第一次外,之後全部相同的檢索耗時0s。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章