индексы БД

Темы, не касающиеся фреймворка, но относящиеся к программированию в целом.
Ответить
Bio man
Сообщения: 609
Зарегистрирован: 2013.07.22, 10:40

индексы БД

Сообщение Bio man »

Если есть уникальный ключ по связке из 2 полей, нужно ли создавать 2 дополнительных индекса по этим полям для ускорения поиска по ним по отдельности?
Например,

Код: Выделить всё

$this->createIndex('idx-name', SqlProgramRepository::SUBJECTS_TABLE, 'name'); //нужен этот индекс?
$this->createIndex('idx-type', SqlProgramRepository::SUBJECTS_TABLE, 'type'); // и этот?
$this->createIndex('idx-name-type', SqlProgramRepository::SUBJECTS_TABLE, ['name', 'type'], true);
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: индексы БД

Сообщение maleks »

Bio man писал(а): 2018.02.16, 10:15 //нужен этот индекс?
вот этот не нужен
Yii2 universal module sceleton - for basic and advanced templates
Bio man
Сообщения: 609
Зарегистрирован: 2013.07.22, 10:40

Re: индексы БД

Сообщение Bio man »

Почему тогда второй нужен?
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: индексы БД

Сообщение maleks »

Если есть индекс
a,b,c,d
Это означает что есть также индексы
a,b,c
a,b
a

Погуглите по выражению - "крайний левый префикс"
Yii2 universal module sceleton - for basic and advanced templates
Bio man
Сообщения: 609
Зарегистрирован: 2013.07.22, 10:40

Re: индексы БД

Сообщение Bio man »

Спасибо.

А если создается индекс внешнего ключа, то нужно создавать обычный индекс?
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: индексы БД

Сообщение SiZE »

Чтобы рассуждать об индексах надо знать БД, запрос и план запроса.
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: индексы БД

Сообщение maleks »

Bio man писал(а): 2018.02.16, 11:46 А если создается индекс внешнего ключа, то нужно создавать обычный индекс?
в mysql автоматом создастся индекс для внешнего ключа, если не задан.
Yii2 universal module sceleton - for basic and advanced templates
trueorfalse
Сообщения: 680
Зарегистрирован: 2017.06.21, 13:50

Re: индексы БД

Сообщение trueorfalse »

maleks писал(а): 2018.02.16, 15:11
Bio man писал(а): 2018.02.16, 11:46 А если создается индекс внешнего ключа, то нужно создавать обычный индекс?
в mysql автоматом создастся индекс для внешнего ключа, если не задан.
Может для внутреннего ключа?
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: индексы БД

Сообщение SiZE »

trueorfalse писал(а): 2018.02.17, 17:56 Может для внутреннего ключа?
какой такой внутренний?
Аватара пользователя
maleks
Сообщения: 1985
Зарегистрирован: 2012.12.26, 12:56

Re: индексы БД

Сообщение maleks »

trueorfalse писал(а): 2018.02.17, 17:56 Может для внутреннего ключа?
Разговор о вот этом ключе, у нас именуемом внешним.

Кстати вы в той теме где хейтят ии говорили что:
trueorfalse писал(а): Я бы сделал, но я уже не пишу под yii.
Вроде вы не сильно давно стартанули в нем разбираться, интересно почему бросили:
- не смогли разобраться
- решили(или были сагетированы) использовать что то другое? что?
Yii2 universal module sceleton - for basic and advanced templates
Аватара пользователя
SiZE
Сообщения: 2813
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: индексы БД

Сообщение SiZE »

maleks писал(а): 2018.02.18, 11:53 Кстати вы в той теме где хейтят ии говорили что:
trueorfalse писал(а): Я бы сделал, но я уже не пишу под yii.
Вроде вы не сильно давно стартанули в нем разбираться, интересно почему бросили:
- не смогли разобраться
- решили(или были сагетированы) использовать что то другое? что?
Может в той теме и зададите вопросы? ;)
trueorfalse
Сообщения: 680
Зарегистрирован: 2017.06.21, 13:50

Re: индексы БД

Сообщение trueorfalse »

maleks писал(а): 2018.02.18, 11:53
trueorfalse писал(а): 2018.02.17, 17:56 Может для внутреннего ключа?
Разговор о вот этом ключе, у нас именуемом внешним.

Кстати вы в той теме где хейтят ии говорили что:
trueorfalse писал(а): Я бы сделал, но я уже не пишу под yii.
Вроде вы не сильно давно стартанули в нем разбираться, интересно почему бросили:
- не смогли разобраться
- решили(или были сагетированы) использовать что то другое? что?
Завершил уже проект, уже даже на symfony 4 завершил почти проект.
Все дело в стратегии у всех она разная.
Глубокая тема, если интересно могу развернутый ответ дать в личку.
Что я понял что без английского уже не как.
Ответить