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

MySQL индекси - колко са достатъчни?

Размерът на индексирането и линията на правене на твърде много ще зависят от много фактори. На малки таблици като вашата таблица с "категории" обикновено не искате или имате нужда от индекс и това всъщност може да навреди на производителността. Причината е, че отнема I/O (т.е. време) за четене на индекс и след това още I/O и време за извличане на записите, свързани със съвпадащите редове. Изключение е, когато правите заявка само за колоните, съдържащи се в индекса.

Във вашия пример извличате всички колони и само с 22 реда и може да е по-бързо просто да сканирате таблицата и да ги сортирате, вместо да използвате индекса. Оптимизаторът може/трябва да прави това и да игнорира индекса. Ако случаят е такъв, тогава индексът просто заема място без никаква полза. Ако вашата таблица с "категории" е достъпна често, може да помислите да я закрепите в паметта, така че db сървърът да я поддържа достъпна, без да се налага да отивате на диска през цялото време.

Когато добавяте индекси, трябва да балансирате дисковото пространство, производителността на заявките и производителността на актуализиране и вмъкване в таблиците. Можете да се разминете с повече индекси на таблици, които са статични и не се променят много, за разлика от таблици с милиони актуализации на ден. В този момент ще започнете да усещате ефектите от поддържането на индекса. Но това, което е приемливо във вашата среда, е и може да бъде определено само от вас и вашата организация.

Когато правите своя анализ, не забравяйте да генерирате/актуализирате статистиката на таблицата и индекса, така че да можете да сте сигурни в точни изчисления.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. LOAD DATA LOCAL INFILE е забранено в... PHP

  2. MySQL и вложен набор:бавно JOIN (без използване на индекс)

  3. PacketTooBigException при извършване на сонарен анализ

  4. Масово вмъкване с SQLAlchemy ORM

  5. Как да напиша REST API?