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

Как да тълкуваме изхода на MySQL EXPLAIN?

Отговаряне на вашите въпроси:

  • Е possible_keys индексите, които MySQL може да иска да използва и keys индексите, които MySQL всъщност използва? Да, това е правилно.

  • Защо е индексът index_status_mit_spam не се използва? В заявката колоните имат същия ред като в индекса. SQL използва статистика за индексите на таблицата за да определите кой индекс да използвате. Редът на полетата в оператора select НЯМА ефект на кой индекс да се използва. Статистиката около индексите включва информация като уникалност на индекса и други неща. Вероятно ще се използват повече уникални индекси. Прочетете повече за това тук:http ://dev.mysql.com/doc/innodb/1.1/en/innodb-other-changes-statistics-estimation.html или тук:http://dev.mysql .com/doc/refman/5.0/en//myisam-index-statistics.html . Тези фактори определят как MySQL ще избере един индекс да използвам. Ще използва само ЕДИН индекс .

  • Защо е индексът index_datum не се използва за ORDER BY ? MySQL ще използва само един индекс, а не два по време на заявка, тъй като използването на втори индекс ще забави заявката още повече. Четенето на индекс НЕ е четене на таблицата. Това е свързано с оперативната ефективност на заявката. Ето отговори, които могат да обяснят някои концепции:https://dba.stackexchange.com/questions/18528/performance-difference-between-clustered-and-non-clustered-index/18531#18531 Или Добавянето на клауза за ограничение към MySQL заявката я забавя драстично Или MySQL индекси и кога да се групират тях . Тези отговори съдържат много подробности, които ще ви помогнат да разберете MySQL индексирането.

  • Как мога да оптимизирам моите таблица-индекси или заявката? (Заявката по-горе се нуждае от до 3 секунди с около милион записи в таблицата). Е, тук има сортиране на файлове, което вероятно ви забавя. Възможно е таблицата да има твърде много индекси и MySQL избира грешен.

Трябва да разберете, че индексите ускоряват четенето и забавят записването в таблици. Така че просто добавянето на индекси не винаги е добра идея. Горните отговори и насоки трябва да ви помогнат да придобиете солидно разбиране.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Каква е разликата между MySQLdb, mysqlclient и MySQL конектор/Python?

  2. Когато избягвам целия вход, понякога той оставя наклонени черти (\) в низа и го вмъква в базата данни. Защо се случва и как мога да разреша това?

  3. Внедряване и проектиране на архитектура за система за уведомяване с помощта на socket.io node.js и входящи съобщения

  4. Как GROUP BY DESC избира своята поръчка?

  5. падащ списък на ajax php