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

Кога MySQL актуализира индексите

Актуализациите на индексите са двойни.

Първата част е вмъкване/актуализация/изтриване на записа в/от индекса. Индексът се актуализира веднага след промяна на записа и този процес блокира заявката до приключване.

Това позволява по-бързо извличане на записи въз основа на условие в индексирана колона, най-добре разбраната цел на индекса.

Втората част е актуализиране на статистиката на индекса. Това позволява на оптимизатора да определи дали за дадена заявка дори си струва да използва индекса. Представете си заявка като SELECT * FROM users WHERE disabled = 0 . Да приемем, че повечето потребители всъщност са активни. Ако статистиката на индекса е актуална, оптимизаторът ще разбере, че повечето записи от таблицата ще бъдат върнати от заявката, таблицата почти изцяло ще трябва да бъде сканирана. Вероятно ще реши да не използва индекса и ще сканира таблицата веднага.

Тази актуализация не се извършва автоматично освен в много специфични ситуации . Тези статистически данни трябва да се актуализират ръчно редовно с ANALYZE TABLE [table_name]



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как мога да въведа данни, използвайки неанглийски (бангла) език в тази таблица на базата данни?

  2. Разлика между InnoDB и MyISAM?

  3. Времето за промяна на експортирането на MySQL данни

  4. Sql/Doctrine заявка за намиране на данни с множество условия с много към много асоциации

  5. MySQL Store Relationship (Family) дърво