MySQL-语句优化
一、取单条数据如何更快
为什么别人拿一条数据的时候会比你快?因为你没有使用limit。很多时候写语句的程序员知道某一个条件的搜索只有一条数据,但是他们并没有加上limit1所以从效率上来说不如加了limit1的语句高效。因为即使某个搜索条件搜索出来的结果只有1条数据,但是如果你不加上limit1的话,sql还是会帮你全文搜索的。因此加上了limit的语句只要找到数量相同的数据时就会马上停止,而不会继续进行全文搜索,因此效率会更高一些。
例如:
SELECT * FROM record_maintable WHERE ID=131
优化后:
SELECT * FROM record_maintable WHERE ID=131 LIMIT 1
结果显而易见,加了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’);
优化后:
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’);
大家看一下就知道了,执行多条语句跟执行一条语句的差距还是挺大的。所以在写sql的时候也要好好考虑好这个问题了。
本文作者:王寄鱼
本文链接:https://www.cnblogs.com/chiyun/p/17653546.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步