MySQL SQL优化

本篇主要介绍SQL优化的相关内容。

目录

一、数据插入

批量插入多行

通过事务插入

Load指令

二、主键优化

页分裂

页合并

三、order by优化

四、gruop by优化

五、limit优化

六、count优化

七、update优化


对于每一次来自客户端的请求,我们通常都需要访问一次数据库,而访问数据库又是比较耗时的,因此我们如果能够掌握一定的SQL优化的技巧并熟练运用的话,就能大大缩减一条请求的响应时间,下面让我们来了解一下常见的SQL优化技巧。

一、数据插入

我们在执行插入操作时,需要进行一次磁盘IO将数据插到磁盘的相应位置,如果只插入一行记录还好,但如果要插入很多行数据呢?这意味着需要进行很多次磁盘IO,从而消耗大量的时间,这显然是不科学的。下面我们来了解三种更为高效的多行数据插入的方式。

批量插入多行

我们可以在一次insertSQL中批量插入多行数据,语法如下:

insert into 表名 values(数据),(数据),(数据);

这样我们只需要一次磁盘IO就能完成多行数据的插入。

通过事务插入

我们可以开启一个事务来进行多行数据的插入操作,这样只要将事务提交一次,就能完成批量数据行的插入。

start transcation;

insert语句

.....

commit;

Load指令

如果插入的数据量高达几百万行,显然前面两种方式也是不合适的,因此,我们需要通过Load指令来完成这种百万级的数据插入。

首先,我们首先要准备一个文件,里面包含要插入的数据 

然后检查MySQL是否有开启 从本地文件中读取数据,具体为查看local _ infile参数的值,

 

 值为1为开启,为0则为关闭,如果关闭可以通过set或者修改配置文件来开启。

开启之后,我们就可以通过load指令来完成百万级插入了,语法如下:

load data local infile '文件路径’ into table 表名 fileds terminated by '文件中每个字段之间的分割符' lines ter

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值