Size: a a a

2021 November 27

EK

Evgeniy Kuvshinov in dbGeeks
ну у тебя там поле company_id даже не содержит fk
источник

EK

Evgeniy Kuvshinov in dbGeeks
в pgsql насколько я знаю fk не создает индекс по нему и его надо создавать отдельно
источник

EK

Evgeniy Kuvshinov in dbGeeks
в mysql fk создает индекс автоматом вроде
источник

EK

Evgeniy Kuvshinov in dbGeeks
сделай explain запроса
источник

EK

Evgeniy Kuvshinov in dbGeeks
если он там читает всю таблицу companies
источник

EK

Evgeniy Kuvshinov in dbGeeks
то может лучше создать индекс и на больших данных не помещающихся в память это даст плюсы
но будет ли такая ситуация ?
источник

I

Ivanov in dbGeeks
Какой запрос тестировали?
источник

I

Ivanov in dbGeeks
Не пойму что за сортировка, если выборка по id, который первичный ключ
источник

EK

Evgeniy Kuvshinov in dbGeeks
ну он хочет вывести существующие компании в начало
и прицепить к ним поля настроек
я это так понял
источник

I

Ivanov in dbGeeks
А. Да, похоже на то
источник

EK

Evgeniy Kuvshinov in dbGeeks
поэтому в таблице company_settings было бы не плохо указать fk
ну и раз она используется для нахождения записи, возможно полезно было бы uniq index добавить
ну и вообще нафига там у настроек колонка id, если можно company_id юзать как pk
источник

EK

Evgeniy Kuvshinov in dbGeeks
если только там связь 1хН между компанией и настройками
источник

ON

Oleg Nechaev in dbGeeks
Да, верно
источник

ON

Oleg Nechaev in dbGeeks
SELECT *
FROM companies_settings
INNER JOIN companies ON companies_settings.COMPANY_ID = companies.ID
ORDER BY companies.IS_EXIST;
источник

I

Ivanov in dbGeeks
Так, если по колонке нет выборки и нет сортировки, зачем индекс?
источник

ON

Oleg Nechaev in dbGeeks
Имеете в виду, что индекс по companies.IS_EXIST нужен? Но companies.IS_EXIST — это по-хорошему tinyint (1), так как в нем будет 0 и 1. Не могу изменять тип данных. Я думал, что индекс понадобится при join.
источник

ON

Oleg Nechaev in dbGeeks
Подскажете как правильно запрос построить, чтобы выбрать из companies_settings поле id и сортировать по полю companies.IS_EXIST?
источник

I

Ivanov in dbGeeks
Если ваш запрос возвращает ожидаемый результат, ничего не меняйте
источник

ON

Oleg Nechaev in dbGeeks
ожидаемый, но запрос медленный :)
источник

I

Ivanov in dbGeeks
Сколько там данных?
источник