Mysql
 sql >> база данни >  >> RDS >> Mysql

Оптимизация на оператор за изтриване на MySQL

Ако вашият DELETE има за цел да елиминира голямо мнозинство от редовете в тази таблица, едно нещо, което хората често правят, е да копират само редовете, които искате да запазят, в дублирана таблица и след това да използват DROP TABLE или TRUNCATE за да изтриете оригиналната таблица много по-бързо.

Индекс може да помогне да намерите редовете, които трябва да изтриете, но изтриването изисква актуализиране на индекса. След изтриване на много редове, индексът може да е дисбалансиран и изисква известна поддръжка с OPTIMIZE TABLE .

DATE_SUB() функцията е постоянен израз (не варира ред по ред), така че оптимизаторът на заявките трябва да е достатъчно умен, за да я разложи и да извърши изчислението веднъж.

Не е необходимо да създавате допълнителен индекс за първичен ключ. Ограничението на първичния ключ имплицитно създава индекс, който дава същата полза като индекс на неосновен ключ.

Съставният индекс вероятно е също толкова полезен, колкото и индексът с една колона, при условие че вашите критерии за търсене се отнасят до най-лявата колона(и) на индекса. Предупреждението „вероятно“ се дължи на това, че отделните възли на индекса са по-големи и затова е необходима повече памет за кеширане на индекса, но това е достатъчно малък фактор, за да не създам цял друг индекс с една колона.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. При какви обстоятелства бихте искали Rails да бъде настроен да НЕ се свързва отново с MYSQL

  2. Какво се случва, ако MySQL връзките непрекъснато не се затварят на PHP страници?

  3. Използване на LOAD DATA LOCAL INFILE в Java

  4. SQL:ДОБАВЯНЕ &МИНУС въз основа на типа на полето

  5. Как да актуализирам полето, за да добавим стойност към съществуващата стойност?