0
点赞
收藏
分享

微信扫一扫

MySQL之InnoDB索引之SQL优化

yongxinz 2022-04-01 阅读 66
mysqlgolang

文章目录

MySQL之InnoDB索引之SQL优化

注:本文基于Linux系统上MySQL v8.0.26进行讲解

1.插入少量数据

1.1问题

insert into tb_test values(1,'tom');
insert into tb_test values(2,'cat');
insert into tb_test values(3,'jerry');
.....

1.2批量插入数据优化

Insert into tb_test values(1,'Tom'),(2,'Cat'),(3,'Jerry');

1.3手动控制事务

start transaction;
insert into tb_test values(1,'Tom'),(2,'Cat'),(3,'Jerry');
insert into tb_test values(4,'Tom'),(5,'Cat'),(6,'Jerry');
insert into tb_test values(7,'Tom'),(8,'Cat'),(9,'Jerry');
commit;

1.4主键顺序插入

2.插入大量数据

在这里插入图片描述

-- 客户端连接服务端时,加上参数 -–local-infile
mysql –-local-infile -u root -p
-- 设置全局参数local_infile为1,开启从本地加载文件导入数据的开关
set global local_infile = 1;
-- 执行load指令将准备好的数据,加载到表结构中
load data local infile '/root/sql1.log' into table tb_user fields terminated by ',' lines terminated by '\n' ;

3.插入大量数据(演示)

CREATE TABLE `tb_user` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`username` VARCHAR(50) NOT NULL,
`password` VARCHAR(50) NOT NULL,
`name` VARCHAR(20) NOT NULL,
`birthday` DATE DEFAULT NULL,
`sex` CHAR(1) DEFAULT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `unique_user_username` (`username`)
) ENGINE=INNODB DEFAULT CHARSET=utf8 ;
-- 客户端连接服务端时,加上参数 -–local-infile
mysql –-local-infile -u root -p
-- 设置全局参数local_infile为1,开启从本地加载文件导入数据的开关
set global local_infile = 1;
load data local infile '/root/load_user_100w_sort.sql' into table tb_user fields terminated by ',' lines terminated by '\n' ;

在这里插入图片描述

在这里插入图片描述

4.主键优化

4.1数据组织方式

在这里插入图片描述

在这里插入图片描述

4.2页分裂

4.2.1主键顺序插入

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

④. 当第二页写满了,再往第三页写入

在这里插入图片描述

4.2.2主键乱序插入

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.3页合并

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

4.4索引设计原则

在这里插入图片描述

5.order by优化

show variables like 'sort_buffer_size';

在这里插入图片描述

6.演示(order by优化)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

7. group by优化

8. 演示(group by优化)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

9.limit优化

10.演示(limit优化)

在这里插入图片描述

在这里插入图片描述

11.count优化

11.1介绍

select count(*) from tb_user;

11.2用法

在这里插入图片描述

12.update优化

update course set name = 'javaEE' where id = 1 ;
 update course set name = 'javaEE' where id = 1 ;
举报

相关推荐

0 条评论