MySQL: самый эффективный способ подсчета записей добавлен сегодня - PullRequest
2 голосов
/ 21 января 2009

Это структура таблицы MySQL, которая у меня есть:

itemID (BIGINT)
userID (BIGINT)
wasAdded (DATETIME)

Мне нужно получить количество предметов, представленных в текущем дне, по X userID

Какой самый эффективный способ сделать это?

Спасибо

Ответы [ 2 ]

4 голосов
/ 21 января 2009

Лучшим способом было бы добавить индекс, который охватывает userID и wasAdded, тогда вы можете сделать

SELECT COUNT(*) FROM my_table WHERE userID = 'X' AND wasAdded BETWEEN CONCAT(CURDATE(), ' ', '00:00:00') AND CONCAT(CURDATE(), ' ', '23:59:59');

Это даже не нужно читать из таблицы, так как все необходимые данные находятся в индексе.

2 голосов
/ 21 января 2009

Это должно сработать:

SELECT COUNT(itemID) FROM 'tableName' WHERE TO_DAYS(wasAdded) = TO_DAYS(NOW()) AND userID = X

Однако убедитесь, что у вас есть индекс для wasAdded и userID!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...