二次查询过程

简介: 【7月更文挑战第8天】

二次查询
这一次查询需要利用上一步找出来的最小值以及各自分库的最大值来构造BETWEEN查询,改写得到的SQL是:

SELECT * FROM order_tab_0 WHERE id BETWEEN 4 AND 12
SELECT * FROM order_tab_1 WHERE id BETWEEN 4 AND 11

结果:

  • order_tab_0 返回 4、6、10、12。
  • order_tab_1 返回 5、7、8、9、11,也就是多了 1 条数据,记住这一点。

取过来的所有数据排序之后就是4、5、6、7、8、9、10、11、12

计算最小值的全局偏移量
核心是:根据BETWEEN中多出来的数据量来推断全局偏移量

现在我们知道4在order_tab_0中的偏移量是2,也就是说比4小的数据有2条。
在BETWEEN查询里,order_tab_1返回的结果是5,7,8,9,11,其中7在第一次查询里的偏移量是2,所以5的偏移量是1。也就是说,5的前面只有一条比4小的数据。
那么4在order_tab中的全局偏移量就是1+2=3,也就是4前面有三条数据。

加上4本身,刚好构成了OFFSET 4,因此从5开始取,往后取4条数据。

总结

简化版本:

  1. 首次查询,拿到最小值
  2. 二次查询,确实最小值的全局偏移量
  3. 在二次查询的结果里根据最小值取到符合偏移量的数据
目录
相关文章
|
JSON Java Maven
如何批量查询自己的CSDN博客质量分
如何批量查询自己的CSDN博客质量分
232 0
|
1月前
|
中间件 存储 SQL
分库分表优化:换中间件 二次查询
【7月更文挑战第7天】
38 15
|
3月前
二次确认的好处
二次确认的好处
|
3月前
|
弹性计算 运维 Shell
自动分析网站链接有效性
【4月更文挑战第30天】
29 0
|
3月前
|
数据采集 SQL 监控
分析重复数据通常涉及以下步骤,以确保对重复项的来源和性质有深入理解
【4月更文挑战第2天】分析重复数据通常涉及以下步骤,以确保对重复项的来源和性质有深入理解
27 1
|
SQL 分布式计算 HIVE
SPARK统计信息的来源-通过优化规则来分析
SPARK统计信息的来源-通过优化规则来分析
565 0
SPARK统计信息的来源-通过优化规则来分析
|
移动开发 JavaScript 安全
H5页面二次分享
对于H5页面来说二次分享还是蛮重要的,毕竟qq还是微信发出去之后习惯性的使用自带的分享功能。和PC端不同,PC直接复制地址了。前两天在做请柬,踩了不少的雷,个人开发和公司开发还是不一样,各种问题,其他问题放在一个请柬的后记里面说吧。我们开始正题。
163 0
H5页面二次分享
|
中间件 关系型数据库 MySQL
记一次保留订单历史记录的方案讨论
记一次保留订单历史记录的方案讨论
247 0
|
移动开发
记录解决二次编码问题
记录解决二次编码问题
|
SEO
增加反向链接的35个技巧
增加反向链接的35个技巧: 列表策略 建立一个“35个×××”。这样的文章经常会成为权威文件而被大量引用,引用者会链接向这样的文章。
118 0