Jeśli Twój DELETE
ma na celu wyeliminowanie większości wierszy w tej tabeli, jedną rzeczą, którą ludzie często robią, jest kopiowanie tylko wierszy, które chcesz zachować, do zduplikowanej tabeli, a następnie użycie DROP TABLE
lub TRUNCATE
znacznie szybciej wymazać oryginalną tabelę.
Indeks może pomóc w znalezieniu wierszy, które należy usunąć, ale usunięcie wymaga aktualizacji indeksu. Po usunięciu wielu wierszy indeks może być niezrównoważony i wymaga pewnej konserwacji za pomocą OPTIMIZE TABLE
.
DATE_SUB()
function jest wyrażeniem stałym (nie zmienia się wiersz po wierszu), więc optymalizator zapytań powinien być na tyle sprytny, aby rozłożyć je na czynniki i raz wykonać obliczenia.
Nie musisz tworzyć dodatkowego indeksu dla klucza podstawowego. Ograniczenie klucza podstawowego niejawnie tworzy indeks, który daje te same korzyści, co indeks klucza niepodstawowego.
Indeks złożony jest prawdopodobnie tak samo przydatny jak indeks jednokolumnowy, pod warunkiem, że kryteria wyszukiwania odwołują się do skrajnych lewej kolumny indeksu. „Prawdopodobnie” zastrzeżenie wynika z tego, że poszczególne węzły indeksu są większe, więc buforowanie indeksu zajmuje więcej pamięci, ale jest to na tyle mały czynnik, że nie stworzyłbym całego innego indeksu jednokolumnowego.