Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день, есть следующий запрос, который достаточно долго исполняется при небольшом количестве данных, может что-то можно сделать, так как данные начинают расти и очень быстро:
почикано
Таблицы:
Отредактированно Proger (17.08.2012 10:46:23)
Неактивен
Выполните EXPLAIN с \G на конце вместо точки с запятой, а то трудно разобраться в неформатированном
Неактивен
1. не делайте JOIN с firms_base - это несколько разгрузит запрос. Названия фирм получите отдельным запросом по заданным id.
2. В идеале таблица sitepos_sites тоже не нужна - можно информацию из нее получить потом. Также можно потом выполнить сортировку уже имея статистические данные
Итак делаем запрос только к sitepos_positions
Неактивен
Спасибо! В целом понял всё, кроме пункта про сортировку имея статистические данные.
Сортировка же по полю из sitespos_sites, как результаты одного запроса сортировать с помощь юдругого или тут же нужно "костылить" с помощью самого приложения? Массивы сортируя?
Неактивен
Хотя одна из версий была загружать результаты этого запроса в некую таблицу для более удобной обработки и вывода ускоренного. И загрузив их уже на "посчитанных данных" через JOIN сортировка выполниться быстрее, если я всё правильно понимаю.
Неактивен
Proger написал:
Хотя одна из версий была загружать результаты этого запроса в некую таблицу для более удобной обработки и вывода ускоренного. И загрузив их уже на "посчитанных данных" через JOIN сортировка выполниться быстрее, если я всё правильно понимаю.
Да, все верно, тут возможны варианты. Один из наиболее прозрачных - использование временной таблицы для посчитанных данных, а потом JOIN с ней (и сортировка).
Неактивен
Супер, получилось в 5 раз быстрее
Неактивен