Хорошее время выполнения в MySQL 5.0 без индекса, но не в 5.1 - PullRequest
0 голосов
/ 06 октября 2011

У меня есть база данных, созданная MySQL 5.0.

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

У меня есть запрос, и время выполнения в MySQL 5.0 составляет 0,9 с. когда я экспортирую базу данных и импортирую в более новую версию MySql, такую ​​как 5.1 (я тоже тестировал 5.5) с тем же аппаратным запросом времени выполнения, 120 с.

если я индексирую поля при соединении, я получаю время выполнения 0,2.

тогда у меня вопрос, почему у меня хорошо работает MySQL 5.0 без индекса?

В чем разница между 5,0 и 5,1 (5,5)?

Ответы [ 2 ]

1 голос
/ 06 октября 2011

Я хотел бы прокомментировать paulsm4, но у меня недостаточно привилегий (пока).Ваш ответ не такой умный по этой причине:

Вопрос не в том: «Нужен ли мне индекс или нет?»

, но?

Почему, когда у меня нет индекса, нет кэша и тех же данных, 5.1 (и 5.5) в сотни раз медленнее, чем 5.0?-> Понятия не имею ...

и

В чем различия между 5.0 и 5.1?-> Проверьте официальный список изменений mysql


В следующий раз, когда я увижу бездомного на улице, попросив у меня один доллар, я отвечу ему действительно Вопрос не в том, могу ли я иметь один доллар (пожалуйста)?но «Как я могу быстро стать мультимиллионером?»

, а затем ... я продолжу свой путь, тратя свои $ на случайную дешевую банку содовой.


1 голос
/ 06 октября 2011

Вопрос действительно

«Нужен ли мне индекс, или нет?»

Единственный способ ответить на этот вопрос - узнатьприложения и профилируйте запросы к базе данных.

В общем, если производительность нормальная, таблица достаточно мала, и если ваши запросы (и, что более важно, ваши объединения ) не используютсяt "избирательно", то, как правило, вам НЕ обязательно создавать индекс.

Вот хорошее резюме "селективности" (и несколько полезных советов по индексированию в целом):

http://www.bennadel.com/blog/1423-Rick-Osborne-On-Database-Indexing-And-SQL-Best-Practices.htm

Селективность в двух словах: ваши данные - это карточный каталог в библиотеке.(Помните эти вещи?) Или картотечный шкаф, полный манильских папок.Индекс - это вкладки на карточках или папках, которые помогут вам найти то, что вы ищете.Избирательность - это отношение уникальных ключей к общему количеству строк.

Помните также, что существует множество переменных, определяющих «производительность».«Версия БД» и «индексирование» - это только два из многих.

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