功能是統計 昨日銷量、今日銷量
查詢條件where 這里面的值不同,執行計劃不同,
為1的資料條數是0,為0的資料條數是72條 整個表是77條資料
查不到記錄反而查詢type是ref
查得到記錄的是ALL


建立的索引如下

explain SELECT
COALESCE ( sum( CASE WHEN mo.pay_status = 0 THEN mo.actual_amount END ), 0 ) AS 'todayAmount',
COALESCE ( sum( CASE WHEN mo.pay_status = 0 THEN mo.actual_amount END ), 0 ) AS 'yesterdayAmount',
COALESCE ( sum( CASE WHEN mo.pay_status = 0 THEN mo.actual_amount END ), 0 ) AS 'totalAmout'
FROM
mall_order mo
WHERE
mo.tenant_group_code = '1'
uj5u.com熱心網友回復:
你總行數77 其中 = '0' 的有 72 條,肯定不走索引了啊。 mysql 認為我要 72潭訓表。那還不如走全表吧。mysql 走索引規則。大概是 30%這樣一個比例。 如果查出來的資料 超過總行數的30% 那就不會走索引了。直接全表掃描。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/247409.html
標籤:MySQL
上一篇:Elasticsearch動態計算每條資料關鍵詞出現次數,并按照公式計算后根據計算結果排序
下一篇:MySqlHelper.ExecuteNonQuery(MySqlConnection connection...只能執行一次?
