У нас есть отчет, который могут запускать пользователи, в котором нужно выбрать записи из 5 разных сервисов. Да нет, я использую UNION для объединения всех таблиц в один запрос, но иногда это было слишком много для сервера, и он зависал! Я оптимизировал фрагменты запроса (где и соединения таблиц), и с тех пор не было никаких сбоев, но отчет по-прежнему загружается долго (т.е. запрос очень медленный).
Вопрос в том, будет ли mysql работать быстрее и оптимальнее, если я создам 5 временных таблиц для разных типов служб, а затем выберу из всех временных таблиц? Или есть другая идея? Я мог бы, конечно, просто использовать 5 отдельных вариантов, а затем объединить их в коде (php). Но я предполагаю, что это приведет к тому, что отчет будет загружаться еще медленнее...
Есть идеи?
UNION ALL
намного легче, чемUNION
, поэтому, если это имеет смысл в вашей ситуации, вы можете попробовать это. - person Spiny Norman   schedule 21.12.2010