当我将INSERT打包到Aria表中时,它会在一系列日志文件(aria_log.%)中创建INSERT的副本。它可能导致磁盘完整和MySQL崩溃。
据我所知,Aria只为TRANSACTIONAL=1保存重做日志,默认行为是TRANSACTIONAL=0。我还专门用TRANSACTIONAL=0创建了一个表,但行为相同。
我使用Aria作为一种备份,因为它比硬盘上的InnoDB更快,并且不需要事务/崩溃安全行为。
我如何禁用Aria日志记录并且只写入表中?
发布于 2021-11-19 18:09:27
经过多次实验,我发现问题不是TRANSACTIONAL,而是PAGE_CHECKSUM。
Aria的默认行为是PAGE_CHECKSUM=1,它在日志文件中保留插入行的副本。
您需要PAGE_CHECKSUM=0来禁用大型日志文件。
发布于 2021-11-14 17:55:52
information_schema、mysql和sys数据库中的许多系统表都使用Aria存储引擎,其中有些具有transactional=1。因此,即使您使用transactional=0创建了一个表,也会有其他带有transactional=1的表。
另外,您确定在transactional=1中没有您自己的Aria表吗?下面是使用transactional=1快速查询所有Aria表(包括系统表):
SELECT TABLE_SCHEMA, TABLE_NAME, ENGINE, CREATE_OPTIONS
FROM information_schema.TABLES
WHERE ENGINE = 'Aria' AND
CREATE_OPTIONS LIKE '%transactional=1%';https://dba.stackexchange.com/questions/302601
复制相似问题