大家好,我是Tom哥~
今日寄语:努力的阶段,往往是最不养生的阶段!
一张千万级的数据表,删除了一半的数据,你觉得B+树索引文件会不会变小?
(答案在文章中!!)
我们先来做个实验,看看表的大小是如何变化的??
做个实验,让数据说话
1、首先,在mysql
中创建一张用户表,表结构如下:
CREATE TABLE `user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`user_name` varchar(128) NOT NULL DEFAULT '' COMMENT '用户名',
`age` int(11) NOT NULL COMMENT '年龄',
`address` varchar(128) COMMENT '地址',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
2、造数据。用户表中批量插入1000W
条数据
@GetMapping("/insert_batch")
public Object insertBatch(@RequestParam("batch") int batch) {
// 设置批次batch=100000,共插入 1000W 条数据
for (int j = 1; j <= batch; j++) {
List<User> userList = new ArrayList<>();
for (int i = 1; i <= 100; i++) {
User user = User.builder().userName("Tom哥-" + ((j - 1) * 100 + i)).age(29).address("上海").build();
userList.add(user);
}
userMapper.insertBatch(userList);
}
return "success";
}
批量插入,每个批次100条记录,100000个批次,共1000W条数据
3、查看表文件大小