3. 对系统表空间使用Raw磁盘分区
3. 对系统表空间使用Raw磁盘分区
可以将raw磁盘分区用作InnoDB系统表空间中的数据文件。此技术可在Windows和某些Linux和Unix系统上启用非缓冲I/O,而无需文件系统开销。使用和不使用raw分区执行测试以验证此更改是否实际上提高了系统性能。
使用raw磁盘分区时,请确保运行MySQL服务器的用户标识具有该分区的读写权限。例如,如果以mysql用户身份运行服务器 ,则该分区上mysql用户必须有可读写的权限。如果使用该–memlock选项运行服务器,则root用户运行服务器r,因此该分区上root用户必须是可读写的。
下面描述的过程涉及选项文件修改。
3.1 在Linux和Unix系统上分配raw磁盘分区
- 创建新数据文件时,请在
innodb_data_file_path
选项的数据文件大小之后立即指定关键字newraw
。分区必须至少与指定的大小一样大。请注意,1MB in InnoDB 是1024×1024字节,而磁盘规格中的1MB通常意味着1,000,000字节。
[mysqld]
innodb_data_home_dir=
innodb_data_file_path=/dev/hdd1:3Gnewraw;/dev/hdd2:2Gnewraw
重启服务器。InnoDB注意到
newraw
关键字并初始化新分区。但是,不要创建或更改任何 InnoDB表。否则,当您下次重新启动服务器时,InnoDB重新初始化分区并且您的更改将丢失。(作为一种安全措施, InnoDB可防止用户在newraw指定任何分区时修改数据。)在InnoDB初始化新分区后,停止服务器,
newraw
将数据文件规范更改为raw:
[mysqld]
innodb_data_home_dir=
innodb_data_file_path=/dev/hdd1:3Graw;/dev/hdd2:2Graw
- 重启服务器。InnoDB现在允许进行更改。
3.2 在Windows上分配raw磁盘分区
在Windows系统上,适用于Linux和Unix系统的相同步骤和附带指南适用,但innodb_data_file_path
Windows上的 设置略有不同。
详细参考官方文档