Итак, у меня есть таблица с голосами. Соответствующие столбцы для этой проблемы: user
и timestamp
.
Мне нужно получить общее количество голосов пользователя, а также их голоса в этом месяце .
Я знаю вопросы - я не прошу их. Я использую их одновременно:
Голосов в этом месяце / Всего голосов:
SELECT COUNT( 0 ) FROM votes WHERE ( timestamp BETWEEN DATE_FORMAT( NOW( ) ,'%Y-%m-01' ) AND NOW( ) ) AND user = ?;
SELECT COUNT( 0 ) FROM votes WHERE user = ?;
На данный момент моя база данных недостаточно велика (или даже не достаточно запрошена), чтобы обеспечить производительность это проблема. Однако вскоре это изменится. Следует ли мне хранить запросы отдельно или я должен:
SELECT COUNT( 0 ) AS totalVotes,
SUM( IF( timestamp BETWEEN DATE_FORMAT( NOW( ) ,'%Y-%m-01' )
AND NOW( ), 1, 0 ) ) AS votesThisMonth
FROM votes WHERE user = ?;
Каков наилучший метод? Есть ли какие-нибудь советы по запросу нескольких бит информации из одной и той же таблицы, чтобы избежать необходимости искать ее дважды? Является ли мой комбинированный запрос тем, что мне следует использовать ?
Спасибо!