Задавайте вопросы, мы ответим
Вы не зашли.
Здравствуйте уважаемые
В отчете делая выборку для отчета, необходимо выбрать количество из другой таблицы, в которой около 4м записей.
В проекте сделано так:
Неактивен
Andrew73 написал:
Я уверен что в цикле не правильно делать, но как же сделать правильно и быстро?
На чем основана ваша уверенность?
Вы ведь воочию убедились, что несколько простых запросов работают быстрее одного громоздкого.
Неактивен
Спасибо за ответ.
Уверенность [s]есть[/s] была на том, что "кормить" сервер сотнями мелких запросов это не профессионально раз и второе что несколько таких процессов могут нагрузить сервер.
Теперь я вообще в сомнении оказался
Стоит задача оптимизации этого участка.
Дебаг "выяснил", что тормоза именно из-за цикла
Моя попытка улучшить не получилось из-за малого опыта оптимизации.
Вы посоветуете оставить "как есть" в цикле?
Неактивен
Сотня мелких запросов дают добавочные расходы на открытие таблицы, парсинг запроса, составление плана и т.д. Можно оптимизировать их за счет использования подготовленного выражения, но это не то во что упирается производительность.
Правильно ли я понимаю, что $VID во втором запросе это v.id из первого и для каждого v.id может быть несколько v.name?
Если да, то делая вложенный запрос вы сделаете большее кол-во запросов к таблице avl_event по числу уникальных v.name, а не по числу уникальных v.id как в случае отдельного цикла.
Неактивен
Какое количество записей возвращает первый запрос ?
Пытаясь LEFT JOIN avl_event муська умирает
Запрос с explain-ом а также show create table обоих таблиц в студию.
Неактивен
evgeny написал:
Какое количество записей возвращает первый запрос ?
8
Запрос с explain-ом
а также show create table обоих таблиц в студию.
Неактивен
В вашем первом посте используется совсем другая таблица:
avl_event а в последнем avl_event_index.
Привёл пару примеров, соединения первых двух запросов через LEFT JOIN.
Возможно нужно слегка подредактировать.
1)
Неактивен
Да, прошу прощения, что не объяснил
из avl_event
сделал 2 таблицы
Индексную avl_event_index
Данные avl_event_data
Соединив их через VIEW в avl_event
для того что бы хоть чуть ускорить вышеуказанный запрос
Неактивен