首页
学习
活动
专区
圈层
工具
发布

Mysql中orderby底层执行流程

从索引 city 找到第一个满足city='苏州'条件的主键id,也就是图中的ID3。 到主键id索引取出整行,取name、city、age三个字段的值,存入sort_buffer中。...重复步骤 3、4 直到 city 的值不满足查询条件为止,对应的主键 id 也就是图中的IDX。 对sort_buffer中的数据按照字段name做快速排序。...从索引 city 找到第一个满足city='苏州'条件的主键id,也就是图中的ID3。 到主键id索引取出整行,取 name、id 这两个字段,存入 sort_buffer 中。...重复步骤 3、4 直到 city 的值不满足查询条件为止,对应的主键 id 也就是图中的IDX。 对sort_buffer中的数据按照字段name做快速排序。...重复步骤 2、3,直到查到第 1000 条记录,或者是不满足 city=’苏州’条件时循环结束。 对应的流程图如下: ? 可以看到,这个查询过程不需要临时表,也不需要排序。

2.4K30
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    MyCat:第七章:MyCAT的亿级别任务

    Top 1 亿级别的大量结果集排序、分组(group by)、分页 (Limit)的优化问题 资料:目前假如一个查询SQL跨越30个分片,每个分片上有1000万数据,则总数据规模为3亿,Select ×...from A  orderby field1,field2  Limit 100000,100 即取出排序结果集中从100000到100000+100的这100个记录,所可能采用的一些算法优化策略如下...Top3 将阿里的Droid SQL Parser引入Mycat,实现针对MySQL/Oracel语法的特定语法支持 Top 4 实现一个通用的NoSQL转接引擎,将SQL语句翻译成NoSQL所需要的基本信息...Top 5 MyCAT智能优化模块,此模块的目标是尽量自动收集Mycat与Mysql运行期的性能参数,提供智能优化指导,包括分片是否合适,是否要建立某些索引,热点数据是哪些,哪些SQL很频繁,Mysql...因为理解MYSQL协议,因此后端的MyCAT集群可以设计为互补模式,以支持更大规模的MYSQL集群,思路如下,假如系统有100个表,则20个表为一组放在一个Mycat上分片,总共5个MyCAT 担负这100

    41910
    领券