MySQL版本5.5安装环境是ubuntu12.04
1、安装sysbench创建一张5000w行的表
apt-get install sysbench
nohup sysbench --test=oltp --mysql-table-engine=innodb --mysql-db=test --oltp-table-size=50000000 --mysql-user=root --mysql-password=xxxxxx prepare &
原理:
当多个文件共同指向同一inode、inode链接数N>1、删除任何一个文件都是巨快
因为、此时删除的仅仅是指向inode的指针
而当N=1时、则不一样了、此时删除的文件相关的所有数据块、所以慢
测试:
在test库生成好sbtest表,在此基础上创建一张同样的表t2做对比测试
create table t2 select * from sbtest;
制作硬链接 ln sbtest.ibd sbtest.ibd.halk
1、安装sysbench创建一张5000w行的表
apt-get install sysbench
nohup sysbench --test=oltp --mysql-table-engine=innodb --mysql-db=test --oltp-table-size=50000000 --mysql-user=root --mysql-password=xxxxxx prepare &
原理:
当多个文件共同指向同一inode、inode链接数N>1、删除任何一个文件都是巨快
因为、此时删除的仅仅是指向inode的指针
而当N=1时、则不一样了、此时删除的文件相关的所有数据块、所以慢
测试:
在test库生成好sbtest表,在此基础上创建一张同样的表t2做对比测试
create table t2 select * from sbtest;
制作硬链接 ln sbtest.ibd sbtest.ibd.halk
登录数据库进行删除测试:
通过对比发现,制作了硬链接的sbtest表删除操作只花了0.77S,而t2表则花了2.93S
最后直接删除数据文件就可以了