первых один:MySQL - Как я могу улучшить эти запросы?
SELECT MONTH(timestamp) AS d, COUNT(*) AS c
FROM table
WHERE YEAR(timestamp)=2012 AND Status = 1
GROUP BY MONTH(timestamp)
один из вопросов, я сталкиваюсь для этого является то, что я должен выполнить несколько запросов, которые используют различные значения для Status
. Есть ли способ объединить их в один? Как и в одной колонке он будет иметь все счетчики для того, когда Status=1
и еще один столбец для того, когда Status=2
и т.д.
второй один:
SELECT COUNT(*) c , MONTH(timestamp) t FROM
(
SELECT t.adminid, timestamp
FROM table1 t
LEFT JOIN admins a ON a.adminID=t.adminID
WHERE YEAR(timestamp)=2012
GROUP BY t.adminID, DATE(Timestamp)
ORDER BY timestamp DESC
) AS a
GROUP BY MONTH(timestamp)
ORDER BY MONTH(timestamp) ASC;
вложенный запрос, не уверен, если я могу улучшить это. Я запускаю этот файл на 2 таблицы, один имеет ~ 35 тыс. Строк и один имеет ~ 300 тыс. Строк. Это занимает около половины секунды для первой таблицы и 4-5 секунд для второго.
Сколько столбцов статуса вам нужно? –
для первого? 4 столбца, 1 для даты и 3 для 3 разных '' status'' Второй запрос только 2, один для подсчета и один за месяц – phz