MySQL-语句优化

一、取单条数据如何更快

​ 为什么别人拿一条数据的时候会比你快?因为你没有使用limit。很多时候写语句的程序员知道某一个条件的搜索只有一条数据,但是他们并没有加上limit1所以从效率上来说不如加了limit1的语句高效。因为即使某个搜索条件搜索出来的结果只有1条数据,但是如果你不加上limit1的话,sql还是会帮你全文搜索的。因此加上了limit的语句只要找到数量相同的数据时就会马上停止,而不会继续进行全文搜索,因此效率会更高一些。

例如:

SELECT * FROM record_maintable WHERE ID=131

img

优化后:

SELECT * FROM record_maintable WHERE ID=131 LIMIT 1

img

结果显而易见,加了limit的并没有做全文搜索因此效率会更高一些。

也可参考该博客下更详细的解释:MySql数据库优化之LIMIT 1 - 简书 (jianshu.com)

二、如何更快插入多条数据

​ 很多程序员的插入语句分多条写,其实这样子的执行效率并不够单条插入语句高。所以在这里我推荐尽量使用一条语句插入的方法。

例如:

INSERT INTO record_tokenaddress (Path,CreateTS) VALUES (‘123/123’,’2018-11-24 18:13:38’);

INSERT INTO record_tokenaddress (Path,CreateTS) VALUES (‘456/456’,’2018-11-24 18:13:38’);

INSERT INTO record_tokenaddress (Path,CreateTS) VALUES (‘789/789’,’2018-11-24 18:13:38’);

img

优化后:

INSERT INTO record_tokenaddress (Path,CreateTS) VALUES (‘123/123’,’2018-11-24 00:00:00’),(‘456/456’,’2018-11-24 00:00:00’),(‘789/789’,’2018-11-24 00:00:00’);

img

大家看一下就知道了,执行多条语句跟执行一条语句的差距还是挺大的。所以在写sql的时候也要好好考虑好这个问题了。

posted @ 2023-08-24 10:33  王寄鱼  阅读(7)  评论(0编辑  收藏  举报