云社区 博客 博客详情

mysql 全字段排序

snowofsummer 发表于 2021-03-17 09:46:45 2021-03-17
0
0

【摘要】   select city,name,age from t where city='杭州' order by name limit 1000 ; 语句执行流程如下所示 :初始化sort_buffer,确定放入name、city、age这三个字段;从索引city找到第一个满足city='杭州’条件的主键id,也就是图中的ID_X;到主键id索引取出整行,取name、city、age三个字段的值...

  select city,name,age from t where city='杭州' order by name limit 1000 ; 

语句执行流程如下所示 :
  1. 初始化sort_buffer,确定放入name、city、age这三个字段;
  2. 从索引city找到第一个满足city='杭州’条件的主键id,也就是图中的ID_X;
  3. 到主键id索引取出整行,取name、city、age三个字段的值,存入sort_buffer中;
  4. 从索引city取下一个记录的主键id;
  5. 重复步骤3、4直到city的值不满足查询条件为止,对应的主键id也就是图中的ID_Y;
  6. 对sort_buffer中的数据按照字段name做快速排序;
  7. 按照排序结果取前1000行返回给客户端。

 

登录后可下载附件,请登录或者注册

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区),文章链接,文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:huaweicloud.bbs@huawei.com进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。
评论文章 //点赞 收藏 0
点赞
分享文章到微博
分享文章到朋友圈

上一篇:mysql binlog(归档日志)和redo log(重做日志)

下一篇:mysql rowid排序

评论 (0)


登录后可评论,请 登录注册

评论