用MySQL创建简要记录的最佳方式是什么?
问题描述:
我每天可能会有一千万到两千万个详细记录(统计数据和性能数据),必须将其读入并汇总为每小时24小时摘要记录和每日1个摘要记录。用MySQL创建简要记录的最佳方式是什么?
该过程计算多个字段的平均值,获取其他字段的最大值和最小值,没有明显的CPU明智。
是更好地:
A)总结了详细记录入简要记录而记录进来,延缓每一个细节记录略微插入?我假设在汇总表中会有很多锁定(选择update等),因为有几个不同的系统导入数据。 B)等到小时结束,然后选择以前的整个小时数据并创建摘要记录?
B)用户看到统计信息会有延迟,但详细记录在此期间可用。
也许有替代方法呢?
答
只需为view
汇总表。你的所有插入将照常工作。只需根据您的需求作出总结即可。这将自动更新主表。
你也可以做24小时和1每日摘要基础。视图是存储的查询,当调用时产生结果集。视图充当虚拟表格。
有关视图的更多详情,请参阅:http://dev.mysql.com/doc/refman/5.0/en/create-view.html
让我知道,如果你想进一步有关援助mysql views.
答
它会依赖于运行单个更新所需的负载,但我可能会去用一个单独的总结运行。我可能会投入一个小小的赌注,说一次更新所花费的时间会比累计每插入一次的想法短。
我只关心创建它的查询会杀死服务器,否则,为什么我不会为运行时报告创建相同的查询而不是创建视图?目前数据库中有50亿行。也许我错过了一些东西(视图的优点?) – MichaelICE 2012-01-08 14:31:16
MYSQL支持物化视图吗? – MichaelICE 2012-01-08 21:48:05
是的,你可以。看看这里http://fromdual.com/mysql-materialized-views – 2012-01-09 01:03:12