#mysql #performance #indexing
#mysql #Производительность #индексирование
Вопрос:
Я прочитал около 20 тем о производительности индекса, но у меня все еще есть несколько вопросов…
-
Вы бы порекомендовали проиндексировать столбец userid в таблице, которая содержит всего около 2000 строк, столбцы — это id (автоинкрементный), userid (уникальный, как ssn), first_name, last_name, phone_num, и он отображает first_name, last_name, phone_num на каждой странице при входе пользователя в систему, выбирая эти данные из таблицы, используя WHERE userid =’ 123-45-67890′?
-
Тот же вопрос, что и 1), но количество строк увеличивается со временем и может быть намного больше 2000?
Ответ №1:
он отображает first_name, last_name, phone_num на каждой странице при входе пользователя в систему, выбирая эти данные из таблицы, используя WHERE userid=’123-45-67890′
Безусловно, дерзайте, вместо сканирования всех строк будет достаточно нескольких запросов. Вы бы использовали запрос на каждой странице. Вы все же думали о сохранении этих данных в сеансе?
Вы должны поддерживать свои индексы на минимальном уровне, если считаете, что в таблице будет много записей (например, вы что-то регистрируете). В пользовательской таблице у вас, скорее всего, будет много операций чтения и мало записей.
Кроме того, вы можете рассмотреть возможность не добавлять индекс, если запрос, извлекающий выгоду из этого, выполняется нечасто и его производительность приемлема.
Без индекса:
Использование индекса: