Информация об изменениях

Сообщение Re: Оптимизация: Where перед Union от 20.09.2018 10:00

Изменено 20.09.2018 10:11 Буравчик

Re: Оптимизация: Where перед Union
Здравствуйте, Буравчик, Вы писали:

Б>Не ожидал такого. Это нормально для оптимизатора БД не разобраться в этой ситуации?


В общем, как-то влияет NULL

SELECT table.m 
FROM (
    SELECT m, NULL AS m2 FROM table1 
    UNION 
    SELECT m, m2 FROM table2) AS table
WHERE table.m = :value;


Для table1 применяется индекс, а для table2 — нет. Интересно...
Re: Оптимизация: Where перед Union
Здравствуйте, Буравчик, Вы писали:

Б>Не ожидал такого. Это нормально для оптимизатора БД не разобраться в этой ситуации?


В общем, как-то влияет NULL

SELECT table.m 
FROM (
    SELECT m, NULL AS m2 FROM table1 
    UNION 
    SELECT m, m2 FROM table2) AS table
WHERE table.m = :value;


Для table1 применяется индекс, а для table2 — нет. Интересно...
Индекс построен по полю m (+еще несколько полей), поле m2 в индексе отсутствует