данных 1000000+ записей для подсчета записей по created_at полю?
Проблема не решается индексированием поля.
SELECT COUNT(id) FROM logs WHERE created_at > "2022-03-30 18:42:01"
- 41 секунда
Возможно, некорректно задавать этот вопрос здесь. Удалю, если посоветуете более подходящий чат.
Если только этот запрос, то странно
бессмысленный запрос, для чего знать сколько мусора в мусорке
А как тогда их подсчитать?
для чего в данном случае нужен этот подсчет?
зачем тебе их подсчитывать, если ты их выводить собрался?
Может он хочет узнать количество записей.
возвращаемся к первому вопросу. зачем оно надо?
если в данном случае требуется делать такие запросы, что-то выводить, то для того что такая большая таблица была легко выбираема и обрабатываема, то рекомендую информацию об ошибке (стэк, доп. информация), т.е. основной объем данных вынести в отдельную таблицу и по связи, когда нужны эти данные выбирать их, а так как выбор будет по id, то это будет происходит очень быстро. все эти действия приведут к тому что таблица logs, которая всего лишь будет содержать например id, message, type, created_at, update_at будет по размеру мала и будет легко помещаться в памяти, которая выделена под базу данных и выборка должна значительно ускорится. P.S. но приведённый запрос не имеет смысла при работе с этими данными
Обсуждают сегодня