這是我的sql
<select id="selectTreeByParent_id" parameterType="java.util.HashMap" resultMap="BaseResultMap">
SELECT
ID.LEVEL1,
DATA1.*
FROM
(
SELECT
@ids AS _ids,
( SELECT @ids := GROUP_CONCAT( gid ) FROM project_grouping WHERE FIND_IN_SET( parent_id, @ids ) ) AS cids,
@l := @l + 1 AS LEVEL1
FROM
project_grouping,
( SELECT @ids := #{parent_id}, @l := -1 ) b
WHERE
@ids IS NOT NULL
) ID,
project_grouping DATA1
WHERE
FIND_IN_SET( DATA1.gid, ID._ids )
<if test="gid!=null">
AND gid = #{gid}
</if>
ORDER BY
LEVEL1,
gid
</select>
查詢結構




這問題太困擾我了,鼓搗兩天了,可以再加分,求大佬救我
uj5u.com熱心網友回復:
第一次查詢還是15條 第二次就只有5條了uj5u.com熱心網友回復:
看懂需求需要些時間呀,好復雜uj5u.com熱心網友回復:
這性能一定很差,還可能出現死鎖,鎖邊等待uj5u.com熱心網友回復:
這個是參考遞回查詢,從網上抄來的 為啥會死鎖呢 大佬
uj5u.com熱心網友回復:
是容易出現,不代表一定。尤其是并發的時候。因為你執行這個占用了長時間的資源,會鎖表。最好拆分下,相對獨立。uj5u.com熱心網友回復:
怎么看執行占用了多久的資源,這個sql其實也沒執行多久,0.018s,這樣會鎖表么,那也是說是鎖表導致的查詢結果有問題
第一次15 第二次5
uj5u.com熱心網友回復:
資料量到20萬 試試多久uj5u.com熱心網友回復:
最里層的增量基礎資料uj5u.com熱心網友回復:
哈哈 我還沒接觸過到這么大的資料量,那大佬這個sql還能優化一下么
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/43429.html
標籤:MySQL
上一篇:多種產品表怎么設計
下一篇:UXDB資料庫有了解的嗎
