本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
RDS for MariaDB 的已知問題和限制
下列項目是使用 RDS for MariaDB 時的已知問題和限制。
注意
此清單並不詳盡。
Amazon RDS 中的 MariaDB 檔案大小限制
針對 MariaDB 資料庫執行個體,使用 InnoDB file-per-table 資料表空間時,資料表大小上限為 16 TB。此限制也會將系統資料表空間限制為最大 16 TB。InnoDB file-per-table 資料表空間 (其中每個資料表都在自己的資料表空間中) 會由 MariaDB 資料庫執行個體的預設設定。此上限與 MariaDB 資料庫執行個體的儲存空間上限無關。如需儲存空間限制的詳細資訊,請參閱 Amazon RDS 資料庫執行個體儲存體。
使用 InnoDB file-per-table 資料表空間有優缺點,取決於您的應用程式。如要判斷您應用程式的最佳方式,請前往 MySQL 文件中的 File-Per-Table 表格空間
不建議允許資料表成長至檔案大小上限。一般來說,更理想的做法是將資料表分割成更小的資料表,如此可以改善效能並縮短復原時間。
您可以用於將大型資料表分成更小資料表的選項為分割。「分割」會根據您指定的規則,將大型資料表的部分分散成個別檔案。例如,如果您依日期儲存交易,則可以建立分割規則,使用分割將較舊的交易分配成個別檔案。然後,您可以定期封存不需要立即可供應用程式使用的歷史交易資料。如需詳細資訊,請參閱 MySQL 文件中的分割
決定所有 InnoDB 資料表空間的大小
-
使用下列 SQL 命令來判斷您是否有太大的資料表,且為進行分割的候選者。
注意
若為 MariaDB 10.6 及更新版本,此查詢也會傳回 InnoDB 系統資料表空間的大小。
若為早於 10.6 的 MariaDB 版本,您無法透過查詢系統資料表來決定 InnoDB 系統資料表空間的大小。建議您升級到更新的版本。
SELECT SPACE,NAME,ROUND((ALLOCATED_SIZE/1024/1024/1024), 2) as "Tablespace Size (GB)" FROM information_schema.INNODB_SYS_TABLESPACES ORDER BY 3 DESC;
決定非 InnoDB 使用者資料表的大小
-
使用下列 SQL 命令,判斷您的任何非 InnoDB 使用者資料表是否太大。
SELECT TABLE_SCHEMA, TABLE_NAME, round(((DATA_LENGTH + INDEX_LENGTH+DATA_FREE) / 1024 / 1024/ 1024), 2) As "Approximate size (GB)" FROM information_schema.TABLES WHERE TABLE_SCHEMA NOT IN ('mysql', 'information_schema', 'performance_schema') and ENGINE<>'InnoDB';
啟用 InnoDB file-per-table 資料表空間
在資料庫執行個體的參數群組中,將
innodb_file_per_table
參數設為1
。
停用 InnoDB file-per-table 資料表空間
在資料庫執行個體的參數群組中,將
innodb_file_per_table
參數設為0
。
如需更新參數群組的相關資訊,請參閱 的參數組 RDS。
已啟用或停用 InnoDB file-per-table 資料表空間時,您可以發出 ALTER TABLE
命令。您可以使用此命令,將資料表從全域資料表空間移動到其自己的資料表空間。或者,您可以將資料表從其自身的資料表空間移動到全域資料表空間。以下是範例。
ALTER TABLE table_name ENGINE=InnoDB, ALGORITHM=COPY;
InnoDB 保留字詞
InnoDB
是用於 RDS for MariaDB 的保留字詞。此名稱無法用於 MariaDB 資料庫。
自訂連接埠
Amazon RDS 會封鎖 MariaDB 引擎的自訂連接埠 33060 的連線。為您的 MariaDB 引擎選擇不同的連接埠。
Performance Insights (績效詳情)
在適用於 RDS for MariaDB 10.11 版的 Performance Insights 中看不見 InnoDB 計數器,因為 MariaDB 社群不再支援這些計數器。