求select where like 语句优化方法

G328661314 2016-12-08 08:10:52
SELECT Tab1.*,Tab2.* FROM Tab1,Tab2
WHERE Tab1.field1 LIKE '*'+Tab2.field1+'*' AND NOT EXISTS (SELECT field1,field2,field3,field4 FROM Tab3 WHERE Tab1.field1=Tab3.field1 AND Tab1.field2=Tab3.field2 AND Tab1.field3=Tab3.field3 AND Tab1.field4=Tab3.field4)

现在跑一次需要10分钟时间

Tab3以后数据量以后有可能增大
...全文
738 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
G328661314 2016-12-10
  • 打赏
  • 举报
回复
引用 1 楼 ACMAIN_CHM 的回复:
以文本方式贴出 不要贴截图 explain select ... show index from .. 以供分析。
这个是查询Tab1字段1中包含有Tab2字段1中的值,最后结果排除Tab3中的数据,排除条件为Tab1和Tab3中4个字段数值完全一致才能排除 Tab2中数据有680条 以后会继续增加 Tab1数据不定 最多200万条 Tab3 数据增加ING 所有字段均有索引 Tab1 ID Kind 原始Name MapID 1 110 伤害中级人民法院 123456 2 111 互相伤害 123456 Tab2 错别字 参考字 伤害 上海 Tab3 ID Kind 原始Name MapID 2 111 互相伤害 123456 查询语句 SELECT * FROM 数据, 错别字 WHERE 数据.原始Name LIKE '*'+错别字.错别字+'*' AND NOT EXISTS (SELECT 4 FROM 正确数据 WHERE 数据.ID=正确数据.ID AND 数据.原始Name=正确数据.原始Name AND 数据.原始Name=正确数据.原始Name AND 数据.MapID=正确数据.MapID); 查询结果 ID Kind 原始Name MapID 错别字 参考字 1 110 伤害中级人民法院 123456 伤害 上海 链接: https://pan.baidu.com/s/1o8ROWS6 密码: 88zx
ACMAIN_CHM 2016-12-08
  • 打赏
  • 举报
回复
以文本方式贴出 不要贴截图 explain select ... show index from .. 以供分析。

7,714

社区成员

发帖
与我相关
我的任务
社区描述
Microsoft Office Access是由微软发布的关系数据库管理系统。它结合了 MicrosoftJet Database Engine 和 图形用户界面两项特点。
社区管理员
  • Access
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧