首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mysql解释输出的优化

mysql解释输出的优化
EN

Stack Overflow用户
提问于 2013-02-03 20:13:53
回答 1查看 69关注 0票数 0

我刚刚运行了mysql explain来检查一个查询,我惊讶地发现它必须检查超过250000条记录才能对结果进行排序,但是我有where子句索引,无论mysql explain给出的是什么,我完全同意,因为添加了很多新行,所以如何排序这个问题.mysql表结构是

代码语言:javascript
复制
 tableA is a forum where users can post the content 

  id         userid       created       title

  1          3            12232         xyz
  2          etc...............

我的mysql查询是

代码语言:javascript
复制
  explain SELECT * from tableA   where userid='2' order by created desc limit 3

这个explain查询的输出是

代码语言:javascript
复制
  id    select_type     table   type    possible_keys   key     key_len     ref     rows    Extra
  1     SIMPLE  tableA  ref     userid  userid  4   const   275216  Using where; Using temporary; Using filesort

我担心的是如何将其减少到3-4,因为我只对显示三个结果感兴趣,但mysql在显示输出之前搜索了275216条记录。由于用户i 2在论坛上发布后已经创建了275216条记录,但是如何告诉mysql只查找特定数据,以便它可以从非常小的行集中搜索结果,我希望最多20-30行mysql应该搜索到服务器3行

EN

回答 1

Stack Overflow用户

发布于 2013-02-03 20:20:50

试试这个::

代码语言:javascript
复制
SELECT * from tableA  FORCE INDEX (userid) where userid=2 order by created desc limit 3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14672338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档