weixin_42968668 2022-06-16 11:41 采纳率: 50%
浏览 169
已结题

mysql优化,sql执行非常卡顿,不改变sql结构达到10秒内结束

一个sql执行非常卡顿,不改变sql结构,9万多+8万多数据,达到10秒内结束查询
原sql SELECT * FROM a_itemsListVer WHERE (locate('防水材料,防水卷材', waterproof) > 0 OR itemsListId IN (SELECT itemsListId FROM a_itemsListOtherVer WHERE locate('防水卷材', waterproofMemo) > 0 ))

//样例只保留了部分关键字段。
//表一 9万多条数据
CREATE TABLE a_itemsListVer (
id varchar(20) NOT NULL,

itemsListId varchar(20) NOT NULL COMMENT '主项目id',
waterproof varchar(150) NOT NULL DEFAULT '',

PRIMARY KEY (id),
KEY fId (itemsListId),

KEY waterproof (waterproof) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ;
//样例数据 INSERT INTO a_itemsListVer VALUES ('zgypu9zqg5ys', 'vs6h24c5b79w', '防水卷材');

//表二 8万多条数据
CREATE TABLE a_itemsListOtherVer (
id varchar(20) NOT NULL COMMENT 'itemsListVerId相同',
itemsListId varchar(20) NOT NULL COMMENT '主项目id',
waterproofMemo varchar(200) NOT NULL DEFAULT '',

updateTime datetime NOT NULL COMMENT '更新时间',
time datetime NOT NULL COMMENT '创建时间',
PRIMARY KEY (id),
KEY itemsListId (itemsListId),

KEY waterproofMemo (waterproofMemo) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
//样例数据 INSERT INTO a_itemsListOtherVer VALUES ('zgzrzulitiid', 'vs6h24c5b79w', '防水卷材', '2022-6-16 11:06:41', '2022-6-16 11:06:46');

目前运行结果都是超过几分钟。数据库服务器配置2核4G
改造的最后一版还是很卡

SELECT COUNT(*) FROM a_itemsListVer WHERE ( if(locate('防水材料,防水卷材', waterproof)>0 , true ,
if(
locate ((SELECT GROUP_CONCAT(waterproofMemo) FROM a_itemsListOtherVer WHERE itemsListId=a_itemsListVer.itemsListId ),'防水卷材' )>0
,true,0 ) ) )

我想要达到的结果。能正常运行,10秒内结束查询
  • 写回答

5条回答 默认 最新

  • sinJack 2022-06-16 12:38
    关注

    1、子查询换连接查询。
    2、查看执行计划,看下是否有走索引,跑几分钟,肯定没索引或者索引失效。
    数据量并不大,优化优先考虑建立索引吧

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 6月24日
  • 已采纳回答 6月16日
  • 创建了问题 6月16日

悬赏问题

  • ¥15 不小心不正规的开发公司导致不给我们y码,
  • ¥15 我的代码无法在vc++中运行呀,错误很多
  • ¥50 求一个win系统下运行的可自动抓取arm64架构deb安装包和其依赖包的软件。
  • ¥60 fail to initialize keyboard hotkeys through kernel.0000000000
  • ¥30 ppOCRLabel导出识别结果失败
  • ¥15 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿