Привет всем)) ребят наверно немного тупой вопрос, но вот возник))


1. Составной индекс, например: col1_col2_col3 (индекс составлен так что бы столбцы стояли по избирательности)
2. Нужно ли в запросе состоящим из трех where выставлять их в том же порядке что и столбцы в индексах?) типа SELECT * FROM table WHERE col1=1 AND col2=2 AND col3=3
или порядок в условии не имеет значения? SELECT * FROM table WHERE col2=2 AND col1=1 AND col3=3 ?

43 ответов

18 просмотров

А как называются столбцы?

Алексей 🌵- Автор вопроса
Denis Efremov
А как называются столбцы?

да в примере я указал col1 col2 col3

Алексей 🌵- Автор вопроса
Denis Efremov
А как называются столбцы?

это отвлеченный пример)) просто есть два мнения у меня и коллеги) интересно кто прав)

Вообще в WHERE порядок важен. А почему бы тебе не посмотреть в плане запроса?

Алексей 🌵- Автор вопроса
Алексей 🌵
Вопрос возник сейчас, а я с телефона.

Просто индекс может и не быть использованным

Алексей 🌵- Автор вопроса

В чате postgree ребята сказали что порядок where в запросе не важен, субд сама поймет как индекс использовать. Вполне может быть что в mysq по другому.

Алексей 🌵
В чате postgree ребята сказали что порядок where в...

Думаю что они ошибаются. А если я хочу чтобы она работала, вынимая записи именно в моём порядке?

Алексей 🌵- Автор вопроса
Denis Efremov
Думаю что они ошибаются. А если я хочу чтобы она р...

Так от перестановки where результат не должен поменяться вроде.

Алексей 🌵
Так от перестановки where результат не должен поме...

первый фильтр отсекает половину записей, второй ищет в половине или первый фильтр оставляет сотую часть записей, второй ищет по сотой части

Denis Efremov
Думаю что они ошибаются. А если я хочу чтобы она р...

И почему ты так думаешь? Если у тебя индекс A, B и в where указать B, A, то порядок не важен.

Denis Efremov
А если у меня 2 индекса A B и B A?

это лишнее, так не надо делать

who
Это верно

Так оно само поймёт порядок или не будет использовать индекс?

who
Само поймет, сейчас приложу скриншоты.

DDL и план запроса пожалуйста тоже

Обязательно!

Ilya Zviagin
Обязательно!

Эксплейн показывает что пофиг

МОжно два вопроса тебе задать?

1) какое у тебя образование ? 2) на основании каких соображений ты решил, что в запросе, имеющем в WHERE три логических терма, необходимо выставлять их в том же порядке что и столбцы в индексах? Почему ты решил, что от порядка условий что-то должно зависеть? SELECT * FROM table WHERE col1=1 AND col2=2 AND col3=3 SELECT * FROM table WHERE col2=2 AND col1=1 AND col3=3

Ilya Zviagin
1) какое у тебя образование ? 2) на основании каки...

2) Но если бы индекса не было, то зависело бы

Алексей 🌵- Автор вопроса
Ilya Zviagin
1) какое у тебя образование ? 2) на основании каки...

1. Образование не ИТ 2. Насчет порядка не я решил а коллега)) я никогда и не думал что это важно) он про это сказал - я решил проверить)

Алексей 🌵
1. Образование не ИТ 2. Насчет порядка не я решил ...

(1) можно конкретнее ? Извини за любопытство.

Алексей 🌵- Автор вопроса
Ilya Zviagin
(1) можно конкретнее ? Извини за любопытство.

1. Обработка материалов на станках с ЧПУ и автоматических линиях 2. Менеджмент и экономика городского хозяйства (ХНУГХ)

Алексей 🌵
1. Образование не ИТ 2. Насчет порядка не я решил ...

(2) - можешь, пожалуйста, выспросить у коллеги, на основании чего у него возникли такие мысли. Это важно для меня, я хочу понять, как люди могут думать про эти вещи. Нужно для обучения других людей.

Алексей 🌵- Автор вопроса
Ilya Zviagin
Спасибо!

это было логический вывод)) типа сначала ищет по первой части индекса, дальше ищет по второй и в конце по третьей)) если поменять местами то mysql вдруг не найдет нужны индекс)) как то так..

SELECT * FROM table WHERE col2=2 AND (col1=1 AND col3=3) а если так то какая логика будет?

Алексей 🌵- Автор вопроса
Viktor 🇨🇾
SELECT * FROM table WHERE col2=2 AND (col1=1 AND c...

я не знаю)) я вообще никогда про порядок не задумывался)

Походу порядок можно поменять только через вложенные запросы

Ilya Zviagin
Порядок чего?

Выполнения фильтраций

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

Обсуждают сегодня

Ребята, всем привет. Подскажите, пожалуйста, можно ли как-то через бота понять, что этого бота добавили в группу\канал и выдали ему права администратора?
Artem Stormageddon
9
Это переведённый текст с английского. Я не говорю на русском, но могу использовать переводчик Телеграм. Приветствую! Я начинающий веб-разработчик и все еще учусь. В настояще...
𐩱𐩪𐩣𐩱𐩲𐩺𐩡
2
А не хотим ли мы развлечься? 😉 Но так чтобы с пользой для наших профессиональных навыков?? 👨‍🎓👩‍🎓 Предлагаю на октябрь запланировать тестовый запуск новой командной игры "Игр...
Andrii Kurdiumov
2
у кого сколько оперативы на базе данных ?
АДИЛЬБЕК
4
Привет всем! Почему этот код не срабатывает при добавлении или удалении пользователя из чата? bot.on('chat_member', async (ctx) => { console.log(ctx); }) bot.launch({allo...
Alexander
5
Через бот апи возможно получить ID стикерпака? Не ссылку.
Vexylon [АФК до 09.09]
5
Привет Хочу сделать аналог iCloud’а для своих проектов, чтобы пользовательская информация хранилась в облаке, была доступна во всех сервисах, её можно было подсасывать везде)...
Виталий
9
В тг можно спарсить всех кто пишет в группе? Если список участников скрыт
S
3
код Event::listen('cms.page.display', function (&$content, $slug, $page, $html) { if (is_object($content)) { dump($content); } else { dump($s...
Point 111
3
Доброе утро, мультиязычные сайты делал кто-нибудь? Какие подводные камни? Нужно чего нибудь допом ставить? Как поступить? В теории сделать две папки ru en и туда кидать страни...
Racoon Mitya
2
Карта сайта