插入数据
-- 客户端连接服务端时,加上参数 -–local-infile
mysql –-local-infile -u root -p
-- 查询全局参数 local_infile 默认是0
select @@local_infile;
-- 设置全局参数local_infile为1,开启从本地加载文件导入数据的开关
set global local_infile = 1;
-- 执行load指令将准备好的数据,加载到表结构中 文件中字段以,分割,行以换行分割
load data local infile '/root/load_user_100w_sort.sql' into table tb_user fields terminated by ',' lines terminated by '\n' ;
可以看出使用load用时16秒多,如果使用insert可以需要数分钟。注意 “在load时,主键顺序插入性能高于乱序插入 ”
主键优化
主键按顺序插入
主键乱序插入
页分裂
主键乱序插入时,可能出现页分裂的情况
1.当插入一个id=50的数据,这时第一个page剩余的容量不够存储
2.则申请一个新的page
3,将1#page从50%处分割,分割后后半部分,移动到新的page中