Простой вопрос по SQL
(A, B, C) уникальны в X? Соответствующий UK есть?
Если да, то я думаю что MySQL сделает джойн так же быстро, как и 2 запроса (даже чуть быстрее за счёт того что запрос один).
Впрочем, я думаю что ничто не мешает написать where B = (select id from X ...). Тогда будет точно быстро
Алсо, набор индексов не оптимален для этих запросов, помогут индексы на несколько колонок.
А грамотей Федечка снова облажался и отправляется читать Розенталя, грамота.ру и другие интересные ресурсы
(A, B, C) уникальны в X? Соответствующий UK есть?уникальны (B, C) А - это флажок по сути. если он снят, то дальнейшее действие бесммыслено. но в 99% случаев он будет стоять. кстати скорее всего тогда его стоит исключить из индекса.
UK есть у каждого из столбцов на который ссылаются B и С. В таблице X на них общий юник не стоит. Стоит сделать?
Очень не хочется тестами заморачиваться.уже бы давно план посмотрел, чем на форуме флудить
Емнип план зависит от состояния таблицы. Тоесть мне сперва надо напихать туда реальный объем даннх вместо тестовых 100 записей.
думаю, UK не помешает
Оставить комментарий
YUAL
Предположим у меня есть таблица X с тысячью записейX.B и X.C - внешние ключи на другие небольшие таблицы
Индексы по всем трём полям
Есть таблица Y с 100 миллионами записей.
где Y.B внешний ключ, ссылающий на A.id
индексы по всем полям кроме A
Допустим мне надо выбрать 10 последних по датей записей из таблицы Y для одной какой-то записи из таблицы X.
Я могу сделать
А можно через джоин. Что будет быстрее? База - мускуль 5.5 иннодб.
Очень не хочется тестами заморачиваться.