論索引對複雜sql語句的重要性(以mysql為例)

2021-09-12 04:06:50 字數 679 閱讀 9796

最近在crm系統的報表時,使用了一些比較複雜的sql查詢語句,使得查詢效能低下。

先來乙個相對比較簡單的複雜sql查詢語句

這條sql語句在沒有設定索引、資料量少的時候(biz_order_audit表也就幾百條,biz_order表1w+條)也需要挺長時間1.544s

有人覺得1.544s很短,那是在這麼低的資料量的情況下呢。一般中大型公司的crm系統的資料量遠遠大於的,因此造成查詢時間也大大的增加。下圖是在biz_order表對store_id欄位設定索引後的查詢結果

可以看到只有0.044s,足足快了1.5s。

尤其可見設定索引的必要性。在使用頻率高的表中對常用的查詢欄位應設定索引,這樣子可以大大提公升查詢速度。

(以上純屬個人工作中的總結,不喜勿噴!如有錯誤,請指出!)

論會寫SQL的重要性

遇到這麼一種情況,我有兩張表,我要求乙個和,但是這個和要根據不同的條件取不同字段,然後求和。當某某情況時,我要取a表裡的a欄位,當某某情況時,我要考慮b表裡是否有滿足某條件的資料,如果有我要去取b表的a欄位,否則,我要取a表的b欄位。這個問題,當我最開始要解決時,我真的覺得天塌下來了,好複雜,好混亂...

論MongoDB索引選擇的重要性

線上某業務,頻繁出現iops 使用率100 的 每秒4000iops 現象,每次持續接近1個小時,從慢請求的日誌發現是乙個 getmore 請求耗時1個小時,導致iops高 深入調查之後,最終發現竟是乙個索引選擇的問題。2017 11 01t15 04 17.498 0800 i command c...

論資料庫索引的重要性

開發人員一般對資料庫的研究都不是太深,很多情況下都會只關心業務層的邏輯跟 的效能優化,尤其是初學者,對資料庫的研究都比較有限。例如 做乙個簡單的查詢或者修改 功能時 本來是一段非常簡單的sql語句。update couponsinfodn set parentresvno fca77a15 771d...