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


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 ответов

23 просмотра

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

Алексей 🌵- Автор вопроса
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
Порядок чего?

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

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

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

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта