Mariadb

在 MariaDB 中禁用 Aria INSERT 登錄

  • November 19, 2021

當我批量INSERT寫入表時,它會在一系列日誌文件 (aria_log.%) 中Aria創建一個副本。INSERT它可能導致MySQL的磁碟滿和崩潰。

據我了解,AriaTRANSACTIONAL=1僅保留重做日誌,預設行為是TRANSACTIONAL=0. 我還專門創建了一個表TRANSACTIONAL=0,但行為相同。

我使用 Aria 進行某種備份,因為它比 HDD 上的 InnoDB 更快,並且不需要事務/崩潰安全行為。

如何禁用 Aria 日誌記錄並僅寫入表?

經過大量的實驗,我發現問題不是TRANSACTIONAL,而是PAGE_CHECKSUM

Aria 的預設行為是 AriaPAGE_CHECKSUM=1在日誌文件中保留插入行的副本。

您需要PAGE_CHECKSUM=0禁用大型日誌文件。

和數據庫中information_schema的許多系統表都使用 Aria 儲存引擎,其中一些具有. 因此,即使您創建了一個帶有 的表,仍然會有其他帶有 的表。mysql``sys``transactional=1``transactional=0``transactional=1

另外,您確定您沒有自己的 Aria 表transactional=1嗎?這是一個快速查詢,用於查找所有 Aria 表(包括系統表)transactional=1

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