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

Оптимизация на индекса на MySQL таблица

Ами индекс на колоната с клеймо за време и потребителски идентификатор би бил полезен. Трябва да можете да четете резултата от оператор EXPLAIN.

Отидете в MySQL и направете следното:

EXPLAIN SELECT timestamp, username, [a few more] FROM log 
WHERE timestamp  BETWEEN '2012-03-30 08:00:00' AND '2012-03-30 16:00:00' 
AND username='XX' 

Това ви показва плана, който MySQL използва за изпълнение на заявката. Ще има колона, наречена ключ. Това показва какъв индекс MySQL използва в заявката. Подозирам, че ще видите ВСИЧКИ там, което означава, че MySQL сканира таблицата отгоре надолу, съпоставяйки всеки ред с вашата клауза where. Сега създайте индекс върху колоните за клеймо и потребителски идентификатор. Изпълнете оператора EXPLAIN отново. Трябва да видите индекса, който сте създали в ключовата колона.

Ако MySQL използва индекса, тогава вашата заявка трябва да бъде значително по-бърза. Само не забравяйте да не прекалявате с индекса. Индексите правят вмъкванията, актуализациите и изтриванията по-бавни. Когато вмъкнете нов ред в таблица и в таблицата има три индекса, новият ред трябва да запише 3 стойности в трите различни индекса. Така че това е нож с две остриета.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да направя time_to_minute в Mysql?

  2. php код за създаване на динамични редове и вмъкване в базата данни

  3. MySql избира всички таблици с множество конкретни колони

  4. Spring-Boot, не може да се запази Unicode низ в MySql с помощта на spring-data JPA

  5. SQL - Намерете най-близката цена до даден аргумент