gpt4 book ai didi

php - MySQL 计数/求和性能

转载 作者:行者123 更新时间:2023-11-29 02:58:15 26 4
gpt4 key购买 nike

我正在开发一个大型应用程序,该应用程序将包含几个表和一个大型数据集。 (可能超过 100 万行)。此应用程序将是一个多个用户同时完成任务的游戏,并且会非常耗费数据。

在这个应用程序中,数据将被聚合以供用户统计。我想出了两种方案来实现计算所有统计数据的预期效果。

场景一

维护一个单独的表来计算用户统计数据。这意味着随着移动的处理,该字段将增加 1。

Table Statistics (Moves, Origins, Points)
$Moves++;
$Origins++
$Points = $Points + $Points;

场景二

根据需要对所有数据的数据字段进行计数和求和。

Table Moves (Points, Origins)
SUM(Points)
SUM(Origins)
COUNT(Moves)

我的问题是,这两种情况中的哪一种在数据库驱动程序上效率最高。我相信场景 2 可能会更高效,因为数据操作会少得多,但我不确定这些查询可能会给数据库带来的负载。

我正在使用带有 UTF8 字符集的 MySQL 5.5 InnoDB

最佳答案

最佳路线将取决于点、起点和移动的读取频率与写入频率。反过来,这些频率将取决于用例、代码风格和缓存的使用(或缺乏)。

如果没有更多详细信息,很难提供有保留的意见,但考虑到这样一个事实,即专用表带来了一些额外的复杂性,例如每个操作所需的额外写入方式,并确保这些数据计数必须始终正确(匹配底层详细数据)。鉴于额外的复杂性,在关系数据库中存储一次而不是两次逻辑数据元素通常是最好的行动方案。

如果您担心性能和可扩展性,您可能需要考虑使用 Mongo 或 DynamoDB 等数据库平台的非关系方法。

关于php - MySQL 计数/求和性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27697962/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com