我有一个表,其中包含一个经常写入的事件日志,相比之下,它很少读取。我很想使用ARCHIVE引擎,因为它基本上就是为此而设计的。但是,我的托管服务提供商不提供此引擎。
唯一可用的(有用的)选项是 MyISAM、InnoDB 和 CSV。我敢肯定,我应该不使用CSV这个选项,让我们优惠的那一个。
我正在寻找的是提供最佳替代方案的引擎,请记住以下几点:
所以基于此,InnoDB 或 MyISAM 哪个更好。我知道这台服务器上安装的 MyISAM 引擎只支持 2^32 行。如果 InnoDB 对压缩有类似的支持并且支持更多的行,那会更好(但我不知道是不是这样)。
我有一个非常大的日志表,我想从中复制行,将它们放入新服务器上的相同表结构中。我不想复制所有内容,只复制旧行,以便主服务器上的表保持较小。所以我必须选择我想要的数据并且只移动(和删除)它。
请记住,有很多数据,mysqldump
如果不需要,我不想用 a 复制所有数据,尤其是在复制表时它会锁定表。
我想出的最好的是一个 PHP 脚本,我将其作为暂定答案发布,尽管我确定它不是最佳选择。
我想每隔几秒钟运行一次查询并在控制台窗口中显示输出。从 bash,使用watch
:
watch "mysql -A -pXXXXX -h host -D dbname -u username --vertical -e \"SELECT rowID FROM IDs LIMIT 1\""
Run Code Online (Sandbox Code Playgroud)
随着输出:
*************************** 1. row ***************************
rowID: 68434810
Run Code Online (Sandbox Code Playgroud)
不过,我不想每 2 秒断开并重新连接一次。有没有更好的办法?