统计数据,如大型记录集在网站上显示

时间:2014-06-05 12:19:42

标签: mysql web statistics

我有4个数据库,其中包含大量数据的表。我的要求是显示这些表中所有记录的计数鼠标悬停在UI中的相应div(它是一个asp.net网站)。请注意,计数可能会在每分钟或每小时发生变化。 (表示可以在表格中添加或删除新记录[使用其他应用程序])。现在的问题是,它需要花费大量的时间来计算(因为它有大量的数据)。所以每个鼠标结束时,它都会调用相应的数据库并进行计数。有没有更好的方法来实现这个?

我正在考虑实施如下的内容。

http://www.worldometers.info/world-population/

但是要在每一秒改变这样的数字,我需要调用数据库。对? (获取最新统计数据)是否有更好的方法来显示此统计数据?

顺便说一下,我正在使用MySQL。

由于

1 个答案:

答案 0 :(得分:0)

您需要提供更多详细信息 - 您正在使用的表引擎,计数查询的外观等等。

但假设您正在使用InnoDB,而您尝试运行count(*)count(primary_id_column),则必须记住InnoDB具有群集主键,这些主键与行的数据页一起存储本身,不在单独的索引页面中,因此计数将对行进行全面扫描。

您可以尝试的一件事是在任何唯一列上创建额外的,单独的,而不是主索引(如行的id等),并确保(使用说明查询语句)您的计数使用此索引。

如果这对您不起作用,我建议创建单独的表(例如,使用列:table_name,row_count)来存储计数器,并在插入时创建触发器,在其他表上创建删除(需要计算记录) in)增加或减少这些值。根据我的经验(我们以每日和每小时的方式监控记录的数量,在数百万条记录的表格和大量写入负载:~150插入/秒)这是我迄今为止提出的最佳解决方案。