我對需要24秒運行的800萬行mySQL表進行以下查詢。mySQL查詢代碼和索引優化
你能認罪勸我:
- 如何優化SQL代碼
- 該指標是最好的桌子上
在此先感謝
SELECT
CASE
WHEN (`Data ultima attestazione` >= '2016-12-25' AND Operatore = 'XXX') THEN 'Attestato nell''ultimo mese'
WHEN (`Data ultima attestazione` < '2016-12-25' AND `Data ultima attestazione` != '' AND Operatore = 'XXX') THEN 'Non Attestato fino a 6 mesi'
WHEN (`Data ultima attestazione` = '' AND Operatore = 'XXX') THEN 'Silente'
WHEN Operatore = 'CESS' THEN 'Cessato'
WHEN Operatore = 'FFF' THEN 'Passato a FFF'
WHEN Operatore = 'VVV' THEN 'Passato a VVV'
WHEN Operatore = 'WWW' THEN 'Passato a WWW'
WHEN Operatore = 'HHH' THEN 'Passato a HHH'
WHEN Operatore = 'PPP' THEN 'Passato a PPP'
WHEN Operatore = 'CCC' THEN 'Passato a CCC'
WHEN Operatore = 'TTT' THEN 'Passato a TTT'
WHEN Operatore = 'NNN' THEN 'Passato a NNN'
WHEN Operatore = 'LLL' THEN 'Passato a LLL'
ELSE 'Silente'
END As Stato,
SUM(CASE WHEN `Tipizzazione` = 'UUU'
THEN 1
ELSE 0
END
) As UUU,
SUM(CASE WHEN `Tipizzazione` = 'NUU'
THEN 1
ELSE 0
END
) As NUU,
SUM(CASE WHEN `Tipizzazione` = 'LSC'
THEN 1
ELSE 0
END
) As LSC,
COUNT(NTT) As NTT
FROM RETE_ANAGRAFICA_UTENZE_SENZA_SERVIZI
WHERE TERR LIKE '%'
AND AREA like '%'
AND STRUTTURA_VENDITA like '%'
AND CF like '%'
GROUP BY Stato
ORDER BY Totale DESC;
請提供有效的結果的查詢,也存在着索引列表的解釋和領域的索引,以加快過濾器定義於。 – Shadow
問題在於你構建數據庫的方式,以及爲什麼多個像'%'查詢? –
Karan,這是一個存儲過程:'%'通常是參數,在最壞的情況下可以是'%' – Paolo