Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Optymalizacja instrukcji usuwania MySQL

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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak zaktualizować wiersz z wieloma obrazami, które mają początkowo wstawiony tylko jeden obraz w php?

  2. Zapytanie MySQL łączące trzy tabele

  3. mysql dołączanie do tabel bez kluczy

  4. Zmaganie się z niestandardowym zapytaniem SQL

  5. Serializuj vs Imploduj