Table_F
id name
Table_K
id fid fkey
Table_F 大概有 20万行记录,Table_K大概有300万行记录
要查询 在 table_K fkey 中 同时包含 某几个key所对应的在 table_F 里面的行
怎么样效率才能高一点?
select top 100 f.name from [Table_F] as f
inner join (
SELECT count([fid]) as num, [fid]
FROM [Table_K]
where fkey like '%2010%' or fkey like '%2011%' or fkey like '%2012%' or fkey like '%2013%'
group by fid
having count([fid])>3
) as t on f.id = t.fid order by t.num desc ,f.id
这样写,需要2秒左右的时间
关于SQL查询效率的问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- yicp123 2016-06-07 07:45关注
先explain 出执行计划,再根据具体情况添加索引
参考自:
MySQL怎样优化WHERE子句 http://www.data.5helpyou.com/article270.htmlMySQL如何优化GROUP BY http://www.data.5helpyou.com/article237.html
解决 无用评论 打赏 举报
悬赏问题
- ¥15 matlab有关常微分方程的问题求解决
- ¥15 perl MISA分析p3_in脚本出错
- ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
- ¥15 ubuntu虚拟机打包apk错误
- ¥199 rust编程架构设计的方案 有偿
- ¥15 回答4f系统的像差计算
- ¥15 java如何提取出pdf里的文字?
- ¥100 求三轴之间相互配合画圆以及直线的算法
- ¥100 c语言,请帮蒟蒻写一个题的范例作参考
- ¥15 名为“Product”的列已属于此 DataTable