2010-09-22 4 views

ответ

1

Вы можете пойти на альтернативный как всегда есть

Преимущества MySQL Индексы Вообще говоря, MySQL индексации в базе данных дает три преимущества: оптимизация

  • запросов: Индексы делают поисковые запросы гораздо Быстрее.
  • Уникальность: индексы, такие как индекс первичного ключа и уникальный индекс, помогают избежать дублирования данных строки.
  • Поиск текста: Полнотекстовые индексы в MySQL версии 3.23.23, пользователи имеют возможность оптимизировать поиск даже в больших количествах текста, размещенного в любом поле, индексированном как таковое.

Недостатки индексов MySQL Когда индекс создается на столбце (ы), MySQL также создает отдельный файл, который сортируется, и содержит только поле (s) вы заинтересованы в сортировке по ,

  • Во-первых, индексы занимают дисковое пространство. Обычно использование пространства не имеет значения, но из-за создания индекса для каждого столбца в каждой возможной комбинации индексный файл будет расти намного быстрее, чем файл данных. В случае, когда таблица имеет большой размер таблицы, индексный файл может достигать максимального размера файла операционной системы.

  • Во-вторых, индексы замедляют скорость написания запросов, таких как INSERT, UPDATE и DELETE. Поскольку MySQL должен внутренне поддерживать «указатели» на вставленные строки в фактическом файле данных, поэтому в случае вышеуказанных запросов записи есть цена исполнения, потому что каждый раз, когда изменяется запись, индексы должны обновляться. Однако вы можете написать свои запросы таким образом, чтобы не приводить к очень заметной деградации производительности.

+0

О чем вы говорите? Индексирование на другие столбцы - большое дело. –

+0

@ daniel «Вы можете пойти на альтернативу», это не большое дело, но оно также зависит от требования? проверьте обновление один раз. –

2

Абсолютно. Это помогает с SELECT ... WHERE, где условие не является вашим основным ключом. Однако будьте осторожны, не индексируйте слишком много - только индексируйте то, что вам нужно.

+0

есть большая часть производительности с использованием нескольких индексов? И я не имею в виду ни один индекс, состоящий из нескольких столбцов, а несколько индексов, каждый из которых состоит из одного столбца – Karl

2

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

Какие индексы вы должны создать? Это зависит от ваших запросов. См. Презентацию, которую я сделал на этой неделе, MENTOR Your Indexes.

Добавление дополнительных индексов добавляется постепенно к накладным расходам при вставке/обновлении/удалении. Когда вы меняете данные, РСУБД должна поддерживать индексы синхронно. Но почти всегда верно, что правильные индексы дают вашим избранным запросам так много преимуществ, что они более чем оправдывают накладные расходы на их поддержание.


есть много потери производительности с помощью нескольких индексов?

В книге «Искусство SQL» автор проверил это и обнаружил, Но, что интересно, оно не растет линейно. Дополнительные накладные расходы второго, третьего и т. Д. Индексов снижаются в грубой логарифмической кривой. То есть два индекса не в два раза дороже одного индекса. Четыре индекса не в два раза дороже двух индексов.

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