означает «KEY» в SHOW CREATE TABLE, что столбец проиндексирован? - PullRequest
2 голосов
/ 29 января 2010

Я имею дело с БД, которую я не создал. Я буду выпускать ряд длительных запросов, включающих три целочисленных столбца большой таблицы: id (первичный ключ), x и y (Я не буду писать / обновлять записи; просто буду выдавать запросы.)

SHOW CREATE TABLE показывает, что:

`primary_key` int(11) NOT NULL auto_increment,
`x` int(11) default NULL,
`y` int(11) default NULL,
UNIQUE KEY `id` (`id`),
KEY `my_x` (`x`),
KEY `mh_y` (`y`)

Для моих целей я должен создать индексы для id, x и y? Или строки UNIQUE KEY и KEY означают, что индексы уже присутствуют?

спасибо!

~ л

Ответы [ 2 ]

2 голосов
/ 29 января 2010

Вы должны создать первичный ключ на primary_key - так как он UNIQUE отличается от PRIMARY. Два других столбца уже проиндексированы - KEY в этом случае совпадает с INDEX.

Если вы всегда выполняете поиск как по x, так и по y, наличие по одному ключу на обоих может улучшить производительность.

1 голос
/ 29 января 2010

уже присутствует. Используйте EXPLAIN , чтобы увидеть, что будет делать запрос (без ошибок).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...