Mysql

Innodb 每個表空間一個文件

  • May 20, 2013

我正在走進一個使用 MySQL 和 Innodb 作為儲存引擎的環境。我想啟用 innodb_file_per_table 來提高性能。考慮到所有數據庫/表目前都儲存在 ibdata1/default ibdata 文件中,innodb_file_per_table 選項是否只會影響我設置此指令後創建的新表?

採用現有數據庫並將每個表拆分為自己的 ibd 文件的最佳方法是什麼?我是否必須轉儲/恢復所有表才能做到這一點?

http://dev.mysql.com/doc/refman/5.0/en/innodb-multiple-tablespaces.html :

The --innodb_file_per_table option affects only table creation, not access to 
existing tables. If you start the server with this option, new tables are 
created using .ibd  files, but you can still access tables that exist in the 
shared tablespace. If you start the server without this option, new tables are 
created in the shared tablespace, but you can still access any tables that were
created using multiple tablespaces.

是的,需要轉儲和恢復才能將現有表移動到它們自己的文件中。

引用自:https://serverfault.com/questions/509117