目前,数据库公认的最快的IO方式是读写裸设备,ORACLE数据库一般配置,日志和数据全部存放到裸设备上。
MYSQL目前支持数据存放到裸设备,本身不支持日志文件的裸设备,但是只需要简单的步骤就可以实现全裸设备,如下:
初次使用裸设备要先初始化:
sudo service mysql stop;
sudo nano /etc/mysql/my.cfg
//修改my.cfg的内容innodb_data_file_path=raw1:1837455Mnewraw, 其中配置数据的大小一定要比空间的实际大小少1M,以便存放数据块结束标志
//其中newraw表示将初始化raw设备。
// 修改innodb_log_file_size=16G, 其中配置数据的大小等于日志文件或者分区的大小
sudo rm /var/lib/mysql/ib_data1 // 删除默认数据文件
sudo ls -l /dev/bcache0 // 显示裸设备节点号, 这里是使用了带bcache的硬盘分区,用户应根据自己的实际选择
sudo mknod /var/lib/mysql/ib_data1 b 251 0
sudo chown mysql:mysql /var/lib/mysql/ib_data1
sudo chmod 660 /var/lib/mysql/ib_data1
sudo cat /var/log/mysql/error.log // 显示数据,观察初始化进行情况,直到执行完毕
// 将初始化/var/lib/m