首页 存档 技术 查看内容

一条SQL语句,查询异常缓慢,应该如何去优化呢?

2018-3-30 13:00 |来自: 互联网 405 0

摘要: (点击上方蓝字,快速关注我们) 这是伯乐在线小组的一个热门讨论帖: 先给出数据表table结构: 字段名 字段含义 id 自增ID name 姓名 rule_id 规则对应ID status 状态 目前数据库中数据大概有2000W条,之后可能还 ...

(点击上方蓝字,快速关注我们)


这是伯乐在线小组的一个热门讨论帖:

先给出数据表table结构:

字段名 字段含义

id 自增ID

name 姓名

rule_id 规则对应ID

status 状态

目前数据库中数据大概有2000W条,之后可能还会不断增长,现在想要查询的是:

从表中找出相同姓名,相同规则ID,并且status = 1对应的最后一条记录。

目前使用的语句

SELECT * FROM table WHERE id IN (

SELECT max(id) AS max_id FROM table GROUP BY name, rule_id)

AND status = 1

已经做的优化:添加了name,rule_id的索引

现在查询时,基本直接卡死,根本查询不出来,像这种情况需要如何优化?

包括但不仅包括:

  • SQL语句的优化

  • 如何合理的添加索引

各位大神有什么好的优化建议吗?谢谢各位了!!

来自 悟空 的评论:

试试两张table表连接呢?

select t1.* from table t1 ,table t2 where t1.name = t2.name and t1.rule_id = t2.rule_id and t1.id

声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

相关分类

返回顶部