2 innodb 启动选项
为了在 mysql-max-3.23 中使用 innodb
表,你必须在配置文件‘my.cnf’或‘my.ini’(windows系统)中的 [mysqld]
区中详细指定配置参数。
作为最小设置,在 3.23 中你必须在 innodb_data_file_path
上指定数据文件名能及大小。如果在‘my.cnf’中没有指定innodb_data_home_dir,系统将在
mysql 的 datadir 目录下创建数据文件。如果将 innodb_data_home_dir
设为一个空串,那可以在 innodb_data_file_path 中给定一个绝对路径。在 mysql-4.0 中可以不设定
innodb_data_file_path :mysql-4.0 将默认地在 datadir 目录下建立一个
10 mb 大小自扩充(auto-extending)的文件‘ibdata1’(在mysql-4.0.0 与 4.0.1 中数据文件的大小为
64 mb 并且是非自扩充的(not auto-extending))。
为了得到更好的性能你必须所示的例子明确地设定 innodb 启动参数。
从 3.23.50 版和 4.0.2 版开始,innodb
允许在 innodb_data_file_path 中设置的最一个数据文件描述为 auto-extending。
innodb_data_file_path 语法如下所示:
pathtodatafile:sizespecification;pathtodatafile:sizespec;... ...;pathtodatafile:sizespec[:autoextend[:max:sizespecification]]如果用 autoextend 选项描述最后一个数据文件,当 innodb 用尽所有表自由空间后将会自动扩充最后一个数据文件,每次增量为 8 mb。示例:
innodb_data_home_dir = innodb_data_file_path = /ibdata/ibdata1:100m:autoextend指定 innodb 只建立一个最初大小为 100 mb 并且当表空间被用尽时以 8mb 每块增加的数据文件。如果硬盘空间不足,可以再添加一个数据文件并将其放在其它的硬盘中。 举例来说:先检查硬盘空间的大小,设定 ibdata1 文件使它接近于硬盘空余空间大小并为 1024 * 1024 bytes (= 1 mb)的倍数, 将 ibdata1 明确地指定在
innodb_data_file_path 中。在此之后可以添加另一个数据文件:
innodb_data_home_dir = innodb_data_file_path = /ibdata/ibdata1:988m;/disk2/ibdata2:50m:autoextend注意:设定文件大小时一定要注意你的os是否有最大文件尺寸为2gb的限制!innodb是不会注意你的os文件尺寸限制的, 在一些文件系统中你可能要设定最大容量限制:
innodb_data_home_dir = innodb_data_file_path = /ibdata/ibdata1:100m:autoextend:max:2000m
一个简单的 my.cnf 例子。 假设你的计算机有 128 mb ram 和一个硬盘。下面的例子是为了使用 innodb 而在 my.cnf 或 my.ini 文件中可能所作的一些配置。我们假设你运行的是 mysql-max-3.23.50 及以上版本,或 mysql-4.0.2 及以上版本。
这个示例适合大部分不需要将 innodb 数据文件和日志文件放在几个盘上的
unix 和 windows 用户。这个例子在 mysql 的datadir 目录(典型的为 /mysql/data)中创建一个自扩充(auto-extending)的数据文件
ibdata1 和两个 innodb 运行日志文件ib_logfile0 和 ib_logfile1 以及
ib_arch_log_0000000000 档案文件。