Size: a a a

2020 December 22

АЗ

Алихан Закиров... in MySQL
Grigorij
У меня смутные воспоминания, что создать не даст. Но я без уверености)
Да пофигу)
источник

АЗ

Алихан Закиров... in MySQL
Переслано от Алихан Закиров...
Всем привет!
Тупой вопрос:
При добавлении индекса к колонке можно выбрать его тип hash, btree, rtree. Разницу в них я плюс-минус понимаю. Но не понимаю, как работает при этом, например UNIQUE индекс, или PK.
Какой тип они используют? Какая скорость выборки, того же UNIQUE? O(n) или O(1)? В документации к мускулю что-то не отыщу ничего. Спасибо за ответ
источник

АЗ

Алихан Закиров... in MySQL
Я если что еще жду ответа =)
источник

G

Grigorij in MySQL
Уникальные, это когда два одинаковых зачения добавить не даст
источник

G

Grigorij in MySQL
Праймари это уникальный, но может быть в единственном числе. Самый главный ключ
источник

АЗ

Алихан Закиров... in MySQL
Я примерно раскопал, что по-умолчанию мускуль для PK использует комбинированный индекс, который под капотом в целях оптимизиации может применять хэш-таблицы, поэтому с PK скорость выборки часто будет O(1), но может и O(n) достигать в худшем случае
источник

АЗ

Алихан Закиров... in MySQL
Grigorij
Уникальные, это когда два одинаковых зачения добавить не даст
Я понимаю область их применения, я не понимаю какая у него скорость выборки с точки зрения алгоритмической сложности
источник

G

Grigorij in MySQL
Это Илью лучше помучай
источник

G

Grigorij in MySQL
На практике никаких просадок не замечал, если автоинкримент стоит
источник

АЗ

Алихан Закиров... in MySQL
Grigorij
На практике никаких просадок не замечал, если автоинкримент стоит
Конечно не замечал, он там через хэш таблицы оптимизирует
источник

АЗ

Алихан Закиров... in MySQL
А с UNIQUE как - я так и не нарыл
источник

G

Grigorij in MySQL
Ты к же как с обычным
источник

АЗ

Алихан Закиров... in MySQL
Предполагаю что использует ту же стратегию что и с PK
источник

G

Grigorij in MySQL
Только с проверкой на уникальность
источник

АЗ

Алихан Закиров... in MySQL
PK так-то тоже уникальный
источник

G

Grigorij in MySQL
ПК это отдельная история
источник

АЗ

Алихан Закиров... in MySQL
У них разница только лишь в том что PK не может быть NULL, а UNIQUE может
источник

АЗ

Алихан Закиров... in MySQL
Всё
источник

АЗ

Алихан Закиров... in MySQL
Ну и ограничение 1 ПК на 1 таблицу
источник

G

Grigorij in MySQL
:D
источник