Im в процессе разработки приложения большого масштаба, которое будет содержать несколько таблиц с большим набором данных. (Потенциально 1M + строки). Это приложение будет игрой с несколькими пользователями, выполняющими задачи одновременно и будет очень интенсивным.MySQL Count/Sum Performance
В этом приложении данные будут агрегированы для статистики пользователей. Я придумал два сценария, чтобы достичь желаемого эффекта вычисления всех статистических данных.
Сценарий 1
Поддерживать отдельную таблицу для расчета статистики пользователей. Значение, когда движение обрабатывается, поле будет увеличиваться на единицу.
Table Statistics (Moves, Origins, Points)
$Moves++;
$Origins++
$Points = $Points + $Points;
Сценарий 2
Граф и суммировать поля данных по мере необходимости во всех данных.
Table Moves (Points, Origins)
SUM(Points)
SUM(Origins)
COUNT(Moves)
Вопрос в том, какой из этих двух сценариев был бы наиболее эффективным для драйвера базы данных. Я считаю, что сценарий 2 может быть более эффективным, потому что будет гораздо меньше манипулирования данными, но я не уверен в нагрузке, которую эти запросы могут размещать в БД.
Я использую MySQL 5.5 InnoDB с UTF8 Charset