@e4c5 ma rację, że żaden z indeksów nie pomoże w bieżącym zapytaniu. Możesz zacząć od dodania następujących indeksów i zmienić zapytanie za pomocą dodatkowych warunków, aby indeksy zostały wykorzystane:
ALTER TABLE myTable
ADD INDEX(categoryId, value1),
ADD INDEX(categoryId, value2),
ADD INDEX(categoryId, value3),
ADD INDEX(categoryId, value4);
I zaktualizuj zapytanie w ten sposób:
SELECT * FROM myTable WHERE categoryId = 1 AND (value1 <= 9) AND (value2 <= 9) AND (value3 <= 9) AND (value4 <= 9) AND (value1 + value2 + value3 + value4) > 9;
SELECT * FROM myTable WHERE categoryId = 1 AND (value1 <= 5) AND (value3 <= 5) AND (value4 <= 5) AND (value1 + value3 + value4) > 5;
Dodatkowe warunki pomagają zawęzić liczbę rzędów do przetworzenia. Dodanie indeksów w większej liczbie kolumn przyspieszyłoby to jeszcze bardziej, ale sugeruję najpierw spróbować tego.