Bra index är de med hög selektivitet. Dina villkor är för det mesta räckviddsförhållanden och detta innebär en begränsning för fälten som kan användas i ett sammansatt index.
Möjliga index att undersöka (sammansatt från de fält som har en likhetskontroll med tillägg i slutet, av ett fält med en intervallkontroll):
(act, Type, tn, flA)
(act, Type, tn, cDate)
(act, Type, tn, nb)
För att kontrollera selektivitet utan att skapa index kan du använda:
SELECT COUNT(*)
FROM PIG P
WHERE act='1'
AND Type = 'g'
AND tn = 'l'
AND flA >= '1615'
och
SELECT COUNT(*)
FROM PIG P
WHERE act='1'
AND Type = 'g'
AND tn = 'l'
AND cDate >= NOW()
och
SELECT COUNT(*)
FROM PIG P
WHERE act='1'
AND Type = 'g'
AND tn = 'l'
AND nb <= '5'
och jämför utdata med 742873
du har från det rumsliga indexet.