我使用的是MySQL 5.x,并且有一个主表可以为所有客户提供统计数据。我想对它进行报告,但不想在同一个表上运行它,所以我想每晚都将数据移动到另一个只用于报告的表中。我的问题是,为每个客户建立一个单独的表来存档也是有益的,或者只为所有客户提供一个存档表?如果我决定由客户分解,系统中可能有数千个客户可能意味着数千个存档表。你的想法?
答案 0 :(得分:0)
如果您为每个客户使用个人,则表格的数量会增加。
如果你有统计数据,我建议总结如下
如果你想把整个事情放在一起,你需要结合三个表。
其他方式,使用mysql replication和master进行插入,更新,删除和从属选择
答案 1 :(得分:0)
我认为这只是组织数据的一种方式;如果您正在处理客户和订单等事务,那么它们应该是单独的表格。
根据可用资源,您可能会执行类似
的操作CREATE TEMPORARY TABLE `new_table` LIKE `old_table`;
INSERT INTO `new_table` SELECT * FROM `old_table`;
如果您有完整的表格副本,您希望获得报告。如果您的资源有限,您可以批量处理,如下所示:
CREATE TEMPORARY TABLE `new_table` LIKE `old_table`;
INSERT INTO `new_table` SELECT * FROM `old_table` LIMIT 100;
......并在下一次迭代中:
DROP TABLE `new_table`;
CREATE TEMPORARY TABLE `new_table` LIKE `old_table`;
INSERT INTO `new_table` SELECT * FROM `old_table` LIMIT 100 OFFSET 100;
就归档信息而言,它取决于您正在使用的环境。例如,在环境中我的东西可以工作,它是24/7并且需求极高。我有一个临时数据引擎,它将所有数据保存在RAM内数据库中,当一条记录被视为“关闭”时,它被移动到MySQL数据库进行存档。这样,当需要时,我可以在MySQL数据库上运行任何报告,而不会影响实时数据的运行运行时间。
我可以就如何存档您的数据提供一些想法,但这需要您提供您正在处理的数量和需求类型的描述。