我想在MySQL中创建一个数据库表来存储我的产品统计数据。几乎每一天的统计数据都应该在数据库中。问题在于速度。在MySQL中存储大量数据?
目前我储存,每个产品,这些值: 时间,售出一件商品,PRODUCT_ID,HIT,OTHER_ID
我认为两种不同的方式来存储DATAS:
- 一天一天在一排(连载)
- 岁岁每个产品在一排(连载)
或你的想法每个产品?
速度测试,我没有那么差,差不多好。但你对这个问题有更好的想法或经验?
我想在MySQL中创建一个数据库表来存储我的产品统计数据。几乎每一天的统计数据都应该在数据库中。问题在于速度。在MySQL中存储大量数据?
目前我储存,每个产品,这些值: 时间,售出一件商品,PRODUCT_ID,HIT,OTHER_ID
我认为两种不同的方式来存储DATAS:
或你的想法每个产品?
速度测试,我没有那么差,差不多好。但你对这个问题有更好的想法或经验?
确实取决于您的报告需求 - 即,如果您只按产品/日报告,那么将事务统计信息作为批处理过程的一部分滚动到汇总表中是有意义的。在任何情况下,我建议将您的交易数据和您的报告数据分隔到一个单独的数据库中,这样您可以优化用于写入的事务数据,并优化报告数据库的读取操作(并且不需要大型报告粉碎你的交易处理能力)。
我假设你只在静态数据库中使用该数据库,而且它的交易存储在第一位的数据库不同。可发生
速度问题:
有你的数据库专用统计它有理由开始设计你想要制作的报告;这样你可以定义:
勾画出在Excel报表中的查询数据(但你可以真正使用任何工具)并用假数据填充报告是了解你想实现什么的一个好想法。
当你高兴与假因此你可以找出你需要挤进数据库中的数据,你必须实现查询,并与你想给你的用户,如果报告中的作用任何。
如何使用数据
这会告诉你你必须从原始数据库转移到统计数据的数据。
如何让您的数据是最新的
这在很大程度上取决于你想如何频繁的统计数据进行更新。您可以设置一个触发器,实时更新您的统计数据库或定期运行脚本以升级您的统计数据库。
注意
解决这个问题作为一个数据仓库/数据集市解决方案(星型/雪花架构)与汇总(汇总/物化视图),如表来减少复杂的长时间运行的查询更快简单的SELECT语句。
建议批量加载数据到一个临时(临时)模式,清洗,验证和填充你的事实和维度表:)之前它映射
多少数据,例如多少行?你能否以批处理模式加载(可以更快)还是需要实时查询?你将对数据运行什么类型的查询? – 2010-11-28 16:13:23
这是什么目的?最后,你想用数据做什么?双?数据挖掘?只是显示他们...? – Spredzy 2010-11-28 16:14:52