Производительность индекса MySQL… Должен ли я создать индекс в этой простой таблице?

#mysql #performance #indexing

#mysql #Производительность #индексирование

Вопрос:

Я прочитал около 20 тем о производительности индекса, но у меня все еще есть несколько вопросов…

  1. Вы бы порекомендовали проиндексировать столбец userid в таблице, которая содержит всего около 2000 строк, столбцы — это id (автоинкрементный), userid (уникальный, как ssn), first_name, last_name, phone_num, и он отображает first_name, last_name, phone_num на каждой странице при входе пользователя в систему, выбирая эти данные из таблицы, используя WHERE userid =’ 123-45-67890′?

  2. Тот же вопрос, что и 1), но количество строк увеличивается со временем и может быть намного больше 2000?

Ответ №1:

он отображает first_name, last_name, phone_num на каждой странице при входе пользователя в систему, выбирая эти данные из таблицы, используя WHERE userid=’123-45-67890′

Безусловно, дерзайте, вместо сканирования всех строк будет достаточно нескольких запросов. Вы бы использовали запрос на каждой странице. Вы все же думали о сохранении этих данных в сеансе?

Вы должны поддерживать свои индексы на минимальном уровне, если считаете, что в таблице будет много записей (например, вы что-то регистрируете). В пользовательской таблице у вас, скорее всего, будет много операций чтения и мало записей.

Кроме того, вы можете рассмотреть возможность не добавлять индекс, если запрос, извлекающий выгоду из этого, выполняется нечасто и его производительность приемлема.

Без индекса:

ОБЪЯСНИТЕ, ВЫБЕРИТЕ id_person ИЗ sl_person, ГДЕ username ='admin'

Использование индекса:

ОБЪЯСНИТЕ, ВЫБЕРИТЕ id_person ИЗ sl_person, ГДЕ username ='admin'