我们有一个实时MySQL数据库,它有99%的插入,大约每秒100次.我们希望每天存档数据,以便可以在不影响主活动数据库的情况下对其运行查询.此外,归档完成后,我们希望清除实时数据库.
如果可能的话,在没有锁定插件的情况下,实现这一点的最佳方式是什么?我们使用INSERT DELAYED进行查询.
我们有一个实时MySQL数据库,它有99%的插入,大约每秒100次.我们希望每天存档数据,以便可以在不影响主活动数据库的情况下对其运行查询.此外,归档完成后,我们希望清除实时数据库.
如果可能的话,在没有锁定插件的情况下,实现这一点的最佳方式是什么?我们使用INSERT DELAYED进行查询.
http://www.maatkit.org/具有MK-Archiver
将表中的行存档或清除到另一个表和/或文件.它的设计目的是在非常小的区块中高效地"蚕食"数据,而不会干扰关键的在线事务处理(OLTP)查询.它通过一个非回溯查询计划来实现这一点,该计划在每个查询之间保持其在表中的位置,因此每个后续查询查找更多可存档行的工作非常少.
另一种 Select 是每天简单地创建一个新的数据库表.MyISAM在这方面确实有一些优势,因为到表末尾的插入通常不会挡路,而且有一种合并表类型可以将它们全部放在一起.许多网站将httpd流量记录到这样的表中.
在Mysql 5.1中,也有分区表可以做同样的事情.