本篇主要介绍SQL优化的相关内容。
目录
对于每一次来自客户端的请求,我们通常都需要访问一次数据库,而访问数据库又是比较耗时的,因此我们如果能够掌握一定的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