'Уникальное' поле столбца подразумевает индекс с MySQL, и если так, почему?

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

Насколько я понимаю, что MySQL автоматически индексирует столбец таблицы, который указан как уникальный. Это так?

Есть ли какая-либо причина, MySQL по-видимому не может иметь уникальных столбцов БЕЗ индексов? Да, каждая вставка/обновление значения будет O (number_of_rows) операция без одной, но как я сказал, разве программист не должен облагаться налогом с решением?

Просто любопытный!

6
задан amn 2 October 2019 в 08:26
поделиться

1 ответ

Насколько я понимаю, MySQL автоматически индексирует столбец таблицы, указанный как уникальный. Так ли это?

Да. Однако это не обязательно «автоматически», это неявно. UNIQUE - это тип индекса, поэтому, конечно, этот столбец индексируется.

Есть ли причина, по которой MySQL не может иметь уникальные столбцы БЕЗ индексов?

Потому что для MySQL было бы глупо выполнять полное сканирование таблицы при каждом INSERT / UPDATE , чтобы придерживайтесь уникального ограничения.

Правка :

Да, каждая вставка / обновление значения будет O (number_of_rows) операцией без одной, но, как я уже сказал, не следует ли программисту облагать налогом это решение?

Почему программист хочет вручную обеспечить базовую целостность данных за пределами уровня хранения данных? Я понимаю, к чему вы клоните, но факт в том, что индекс не может повредить чему-либо (он просто занимает немного больше места), поэтому на самом деле нет решения для рассмотрения.

11
ответ дан 9 December 2019 в 22:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: