как работают индексы в таблицах MySQL (MyISAM)? - PullRequest
2 голосов
/ 31 марта 2010

Несколько основных сомнений у меня:

1. Is primary key column automatically indexed?

2. What should be criteria to select index column?

3. When should I club multiple columns?

4. Does MyISAM or InnoDB has any affect on which columns should be indexed? Probably not.

5. Are they really required, specially in case if primary key column is automatically indexed?

Спасибо.

1 Ответ

1 голос
/ 31 марта 2010
  1. Да. Ключ - это синоним индекса.
  2. Дизайн базы данных и используемые запросы. Единственного ответа не существует.
  3. Когда эти несколько столбцов используются в запросе. Единственного ответа не существует.
  4. Да, двигатель не влияет на индексацию.
  5. Обычно так и есть. Любое живое приложение делает свои данные, основанные не только на первичном ключе. Единственного ответа не существует.

Индексация довольно сложная работа. Во-первых, это должно быть сделано исходя из реальных потребностей. Если некоторые из ваших запросов работают медленно, пришло время добавить несколько индексов. Если ваш запрос выполняется быстро, индекс не нужен. Затем запустите ваш запрос со словом EXPLAIN перед ним, например, EXPLAIN SELECT * FROM table и посмотри, что там написано. Обычно это помогает определить, где разместить idnex.

http://dev.mysql.com/doc/refman/5.1/en/mysql-indexes.html - больше объяснений здесь

...