Я читаю о индексах MySQL и все еще имею несколько вопросов.Создание и использование индексов MySQL
Во-первых, у меня есть приложение ASP.NET с базой данных MySQL InnoDB. У меня есть таблица с именем userstable
со следующими колонками: last_name
, middle_name
, first_name
, email
.
Если бы я хотел, чтобы создать индекс, основанный от последнего имени, которое я мог бы создать индекс, например:
CREATE INDEX last_name_index ON userstable (last_name);
Теперь у меня есть этот следующий запрос, чтобы выбрать данные, и мой вопрос, если этот регулярный запрос SQL должен быть изменен для использования индекса? Если да, то как?
SELECT * FROM userstable WHERE last_name="johnson"
Также я прочитал, что если вы хотите добавить строки в таблицу, что индексы должны обновляться, потому что индексы могут устареть.
Означает ли это, что я должен произвольно выдавать эту команду CREATE INDEX last_name_index ON userstable (last_name);
каждые столько записей в таблице?
Спасибо за ваш быстрый ответ. В вашем втором абзаце вы сказали, что мой запрос обычно использует индекс, означает ли это, что мой простой запрос SELECT * FROM userstable WHERE last_name = «johnson» уже использует индекс? т. е. мне не нужно явно изменять этот запрос вообще, чтобы база данных использовала индекс? –
@CDuran. , , Никаких изменений вообще. Вы можете посмотреть план объяснения, чтобы убедиться, что это так. (Просто поместите объяснение перед запросом, и вы получите шаги выполнения.) –
Хорошо, спасибо. –