You can use raw disk partitions as data files in the shared tablespace. By using a raw disk, you can perform nonbuffered I/O on Windows and on some Unix systems without file system overhead. This may improve performance, but you are advised to perform tests with and without raw partitions to verify whether this is actually so on your system.
When you create a new data file, put the keyword
newraw immediately after the data file size in
innodb_data_file_path. The
partition must be at least as large as the size that you specify.
Note that 1MB in InnoDB is 1024 × 1024
bytes, whereas 1MB in disk specifications usually means 1,000,000
bytes.
[mysqld] innodb_data_home_dir= innodb_data_file_path=/dev/hdd1:3Gnewraw;/dev/hdd2:2Gnewraw
The next time you start the server, InnoDB
notices the newraw keyword and initializes the
new partition. However, do not create or change any
InnoDB tables yet. Otherwise, when you next
restart the server, InnoDB reinitializes the
partition and your changes are lost. (As a safety measure
InnoDB prevents users from modifying data when
any partition with newraw is specified.)
After InnoDB has initialized the new partition,
stop the server, change newraw in the data file
specification to raw:
[mysqld] innodb_data_home_dir= innodb_data_file_path=/dev/hdd1:3Graw;/dev/hdd2:2Graw
Then restart the server and InnoDB permits
changes to be made.
On Windows, you can allocate a disk partition as a data file like this:
[mysqld] innodb_data_home_dir= innodb_data_file_path=//./D::10Gnewraw
The //./ corresponds to the Windows syntax of
\\.\ for accessing physical drives.
When you use a raw disk partition, be sure that it has permissions
that enable read and write access by the account used for running
the MySQL server. For example, if you run the server as the
mysql user, the partition must permit read and
write access to mysql. If you run the server with
the --memlock option, the server must
be run as root, so the partition must permit
access to root.