Добрите индекси са тези с висока селективност. Вашите условия са предимно условия на диапазон и това поставя ограничение за полетата, които могат да се използват в съставен индекс.
Възможни индекси за изследване (съставени от онези полета, които имат проверка за равенство с добавяне в края на едно поле с проверка на диапазона):
(act, Type, tn, flA)
(act, Type, tn, cDate)
(act, Type, tn, nb)
За да проверите селективността, без да създавате индекси, можете да използвате:
SELECT COUNT(*)
FROM PIG P
WHERE act='1'
AND Type = 'g'
AND tn = 'l'
AND flA >= '1615'
и
SELECT COUNT(*)
FROM PIG P
WHERE act='1'
AND Type = 'g'
AND tn = 'l'
AND cDate >= NOW()
и
SELECT COUNT(*)
FROM PIG P
WHERE act='1'
AND Type = 'g'
AND tn = 'l'
AND nb <= '5'
и сравнете изхода с 742873
имате от пространствения индекс.