2009-08-23 1 views
1

У меня есть таблица вида:Добавить индекс в колонку или нет?

CREATE TABLE `item` (
`id` int(11) NOT NULL auto_increment, 
`title` varchar(255), 
`my_number` int(10) unsigned default NULL 
); 

Есть целые сотни тысяч деталей, и я обычно заказываю их «my_number».

Будет ли добавление индекса на «my_number» увеличивать производительность по запросам при заказе по этому полю?

Я использую MySQL, таблица InnoDB.

ответ

6

Я знаю ответ, но это не имеет значения. Что вы должны сделать в все случаях потенциальной оптимизации базы данных является добавление индекса и тест это. И, тем самым, я имею в виду тестирование всех ваших затронутых запросов, вставок и обновлений, чтобы обеспечить повышение производительности, которое превосходит любую потерю производительности в другом месте.

Вы не должны доверять моим знаниям или чьим-либо другим, если альтернатива - это конкретные данные, которые вы можете собрать сами. Измерьте, не угадайте!

Ответ, между прочим: «это должно, если только ваша СУБД действительно мертва». Как правило, добавление индексов увеличивает скорость выбора, но замедляет вставки и обновления. Но I означает «вообще» - это не всегда так. Хороший администратор баз данных постоянно анализирует производительность СУБД и настраивает ее там, где это необходимо. Базы данных не являются заданными и забытыми объектами, их нужно ухаживать и развивать :-)

+0

Ну, я тестировал и добавляю индекс, увеличивая производительность. Это делает вас правильными как при тестировании, так и индексировании :-) – Hobhouse

Смежные вопросы