天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 1060|回复: 4

t_pending查询优化【ID:4167】

[复制链接]
华东地质 发表于 2013-1-5 13:48:49 | 显示全部楼层 |阅读模式
本帖最后由 purple 于 2013-1-7 11:03 编辑

这句sql
  1. SELECT * FROM T_PENDING WHERE STATE IN (SELECT FLOWSTATERT_ID FROM T_ACTORRT WHERE ACTORID IN('11e0-1f89-c3b1e16d-96da-55b791a571f0','11df-ca19-4a1a129a-adca-dd33fda5e591','11e0-14ac-2800b464-a649-25854b4f76e3','11e0-14b1-584d1b4d-a649-25854b4f76e3','11e0-3d98-e811d1f3-ab19-a198297dc765','11e0-6a56-0b3a80bf-b01d-b5be7e75d097','11df-d5c3-9ce20060-9234-c19050f7abd5') AND PENDING=1) AND FORMID IN('11e1-b435-a030e2b4-a83e-2b636922c0c3','11e1-b4fe-982e9cd8-a83e-2b636922c0c3','11e1-b522-4ceaff34-a83e-2b636922c0c3','11e1-b52e-01837211-a83e-2b636922c0c3','11e1-b5f5-e567903e-a83e-2b636922c0c3') AND SUMMARY IS NOT NULL ORDER BY LASTMODIFIED
复制代码
我mysql下t_pending才4w数据 这句经常慢查询  explain显示查一次就全表扫描  加索引也不行
原因mysql下in语句的子查询有性能问题(where state in(select ....))

建议由
SELECT * FROM T_PENDING WHERE STATE IN (SELECT FLOWSTATERT_ID  .... ) AND FORMID IN() AND SUMMARY IS NOT NULL ORDER BY LASTMODIFIED
改为
SELECT * FROM T_PENDING,(SELECT FLOWSTATERT_ID  .... ) AS TBT WHERE T_PENDING .STATE = TBT. FLOWSTATERT_ID AND FORMID IN() AND SUMMARY IS NOT NULL ORDER BY LASTMODIFIED

可以有效减少全表扫描
改动前
显示行 0 - 4 ( 5 总计, 查询花费 0.4806 秒) [LASTMODIFIED: 2013-01-04 11:23:28 - 2013-01-05 13:43:44]
改动后
显示行 0 - 4 ( 5 总计, 查询花费 0.0058 秒) [LASTMODIFIED: 2013-01-04 11:23:28 - 2013-01-05 13:43:44]
bess 发表于 2013-1-5 13:52:43 | 显示全部楼层
感谢您的建议与共享,这部分晚点会整理提交至研发那边。
 楼主| 华东地质 发表于 2013-1-5 14:52:40 | 显示全部楼层
回复 2# bess


    类似的有很多
  1. SELECT * FROM (SELECT * FROM (SELECT d.* FROM TLK_T_TRANSMIT d WHERE d.ISTMP = 0 AND (d.ID IN(SELECT DOC_ID FROM AUTH_T_TRANSMIT AUTH WHERE AUTH.VALUE IN ('11e0-1f08-b1a08060-8daf-ebeb90799bec')))) table_orderby WHERE DOMAINID ='11df-d5bf-26d6df6f-9234-c19050f7abd5' ORDER BY table_orderby.LastModified DESC, table_orderby.ID ) AS TB LIMIT 0,30
复制代码
这句用了13s  返回4结果  但是检查了11916689行  表本身都比较小
purple 发表于 2013-1-5 14:58:05 | 显示全部楼层
回复 3# 华东地质


    您好,这部分会一起向研发那边反馈,对应有进展之后,会在帖子上有所告知与跟进。
purple 发表于 2013-1-7 11:03:52 | 显示全部楼层
您好,该需求目前已提交至下下版本(sp8)中进行跟踪,待sp8版本需求会议之后,会在该贴子上告知具体情况。敬请留意。

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 20:48

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表