Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 我是否需要存储或计算统计数据?_Sql_Database_Design Patterns_Statistics - Fatal编程技术网

Sql 我是否需要存储或计算统计数据?

Sql 我是否需要存储或计算统计数据?,sql,database,design-patterns,statistics,Sql,Database,Design Patterns,Statistics,我正在创建一个应用程序,需要SQL数据库中数据的统计信息 例如,我有一个表“animals”,其中的“type”列可以等于“dog”或“cat”。我需要计算“动物数量”类型的统计数据,因此它将等于我的表“动物”中的实体数量,或“猫的百分比”,因此它将等于猫的数量/动物数量*100 这个例子被简化到了最大限度,但在我的应用程序中,它将是更复杂的计算,并且数量更多 对于我的统计信息,我是否必须创建另一个“统计信息”表,并在每次修改“动物”表时更新它,还是每次有API请求时都计算这些统计信息?最佳做法

我正在创建一个应用程序,需要SQL数据库中数据的统计信息

例如,我有一个表“animals”,其中的“type”列可以等于“dog”或“cat”。我需要计算“动物数量”类型的统计数据,因此它将等于我的表“动物”中的实体数量,或“猫的百分比”,因此它将等于猫的数量/动物数量*100

这个例子被简化到了最大限度,但在我的应用程序中,它将是更复杂的计算,并且数量更多


对于我的统计信息,我是否必须创建另一个“统计信息”表,并在每次修改“动物”表时更新它,还是每次有API请求时都计算这些统计信息?最佳做法是什么?

最佳做法是在需要时进行计算。这样,您就可以确保结果始终与数据保持一致

有时,您的数据会变得越来越大。你的系统真的很忙。您对快速响应时间的需求至关重要。在这些情况下,您需要考虑如何使代码更高效。这时您开始考虑一个单独的统计表

如果你有这样一个表,你就不会把这个比率保留在表中——至少不是唯一的。相反,你会有“狗”和“猫”的柜台。然后,您可以使用
insert
s、
update
s和
delete
s的触发器使这些值保持最新。当然,触发器会增加开销


您还可能遇到这样的情况,即只需要定期(例如每天一次)进行统计。在这个场景中,您可以运行批处理作业来创建统计表——在数据库的更多静止期运行批处理。数据已过期,但这比实时维护
统计数据
表更能满足性能预期。

好的,谢谢!我将查看这些触发器,但只需在需要时进行计算:)