mysql:sql语句分为两条sql写 对比 合成一条sql写,性能相差一千多倍,如何解决?
source link: https://www.oschina.net/question/155761_2325625
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
mysql:sql语句分为两条sql写 对比 合成一条sql写,性能相差一千多倍,如何解决?
我有一个树状结构的表,想找 指定节点 下的 所有子孙节点。表结构用 parentId进行关联:
我的实现方式是:
- 写一个函数生成指定节点的所有子节点id合成的一个字符串:
CREATE FUNCTION `queryChildren`( cId INT ) RETURNS varchar(20000) CHARSET utf8 BEGIN DECLARE sTemp VARCHAR ( 20000 ); DECLARE sTempChd VARCHAR ( 20000 ); SET sTemp = ''; SET sTempChd = cast( cId AS CHAR ); WHILE sTempChd IS NOT NULL DO SET sTemp = CONCAT( sTemp, ',', sTempChd ); SELECT group_concat( CatalogID ) INTO sTempChd FROM his_ha_catalog WHERE FIND_IN_SET( parentId, sTempChd ) > 0; END WHILE; RETURN sTemp; END
- 用一条sql语句查找数据(这样查询,花费时间90秒):
SELECT * FROM his_ha_catalog where FIND_IN_SET(CatalogID, queryChildren(75));
- 用两条sql语句查找数据(这样查询,花费时间0.05秒):
SELECT queryChildren(75) into @childrenids; SELECT * FROM his_ha_catalog where FIND_IN_SET(CatalogID, @childrenids);
请问,象这样的问题,如果想优化一条sql语句的实现,有什么办法吗?
Recommend
-
3
医院Logo设计用一条蛇还是两条蛇?那得看你是公立医院还是莆田系医院咯重庆市羽晗广告有限责任公司 设计总监最近在做一家医院的VI设计,想到一个关于“蛇”这个符号很有趣的多...
-
2
Flow VS 以太坊:深度对比两条公链以及合约开发语言 Mynft 刚刚 随着区块链技术的发展,我们看到了越来越多的平台、开发语言以及应用。而最新的发展趋势...
-
2
三星Galaxy S23系列将性能模式细分为Standard和Light两种模式 zhangli 2023年02月11日 14:17 原标题:三星 Galaxy S23 中 Light 性...
-
87
前几天在做一个需求的时候,需要清理mysql中重复的记录,当时的想法是通过代码遍历写出来,然后觉得太复杂,心里想着应该可以通过一个sql语句来解决...
-
65
MySQL - @frozenway - mysql> SELECT count(*) AS tt,`agent`,`ip`,`isp` FROM `sh_agent_log` GROUP BY `ip` ORDER BY tt DESC
-
38
每天都在跟 mysql 打交道,你知道执行一条简单的 select 语句,都经历了哪些过程吗? 首先,mysql 主要是由 server 层和存储层两部分构成的。server 层主要包括连接器、查询缓存,分析器、优化器、执行器。存储层主要是用来存储和查询数据的
-
32
说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你“输入URL回车之后,究竟发生了什么”一样,看看你能说出多少了。 之前腾讯面试的实话,也问到这
-
34
文章来源:网络说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你“输入URL回车之后,究竟发生了什么”一样,看看你能说出多少了。之前腾讯面试的实话,也问到这个问题了,不过答的很不好,之前没去想过相关原...
-
37
说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你“输入URL回车之后,究竟发生了什么”一样,看看你能说出多少了。 之前腾讯面试的实话,也问到这个问题了,不过答的很不好,之前没去想过相关原因,导致一时之...
-
24
Photo From ins ...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK