加入收藏 | 设为首页 | 会员中心 | 我要投稿 济南站长网 (https://www.0531zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

索引这个mysql查询

发布时间:2021-01-28 16:34:31 所属栏目:MySql教程 来源:网络整理
导读:我正在用以下查询查询数据库. 该查询需要21秒才能执行. ?我已经通过解释查询进行了检查. 我分别在字段groupId和batchId上具有索引. EXPLAIN SELECT message,sentOn,maskId,isDndCheck,contentTypeFROM sms_historiesWHERE groupId = 1750GROUP BY batchIdO

我正在用以下查询查询数据库.
该查询需要21秒才能执行.
?我已经通过解释查询进行了检查.
我分别在字段groupId和batchId上具有索引.

EXPLAIN SELECT message,sentOn,maskId,isDndCheck,contentType
FROM sms_histories
WHERE groupId = 1750
GROUP BY batchId
ORDER BY batchId DESC
LIMIT 0,1

我正在通过该查询获取群组的最新帖子.

我的解释查询显示了结果

id  select_type     table       type    possible_keys   key     key_len     ref     rows    Extra
1      SIMPLE   sms_histories    index      groupId     batchId     5        NULL    888    Using where 

请告诉我问题是什么,为什么这个查询需要这么长时间? 最佳答案 我认为您应该像bobince所说的那样对batchId和groupId使用复合索引.我认为您的表sms_histories中将有很多数据.正如bobince所说,您正在使用有点尴尬的数据库架构.您应该尝试对其进行规范化并从中删除复制.在开始新项目之前,您应该更多地关注数据库架构.
因此,最主要的是尝试同时在batchId和groupId上建立索引.

(编辑:济南站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读