首页 > 其他 > 详细

DRDS分库分表学习-如何高效扫描 DRDS 数据

时间:2020-04-09 16:31:13      阅读:125      评论:0      收藏:0      [点我收藏+]

DRDS 支持高效的数据扫描方式,并支持在全表扫描时使用聚合函数进行统计汇总。

常见的扫描场景如下:

  • 没有分库分表: DRDS 会把原 SQL 传递到后端 MySQL 执行。这种情况下 DRDS 支持任何聚合函数。

  • 非全表扫描:SQL 经过 DRDS 路由后,发送到单个 MySQL 库上执行。比如说拆分键在 WHERE 中是等于关系时,就会出现非全表扫描。此时同样可以支持任何聚合函数。

  • 全表扫描:目前支持的聚合函数有 COUNT、MAX、MIN、SUM。另外在全表扫描时同样支持 LIKE、ORDER BY 、LIMIT 以及 GROUP BY 语法。

  • 并行的全表扫描:如果需要从所有库导出数据,可以通过 SHOW 指令查看表拓扑结构,针对分表并行处理。详见下文。

 

 

执行 SHOW TOPOLOGY FROM TABLE_NAME 指令获取表拓扑结构。

mysql:> SHOW TOPOLOGY FROM DRDS_USERS;
+------+-------------------+--------------+
| ID   | GROUP_NAME        | TABLE_NAME   |
+------+-------------------+--------------+
|    0 | DRDS_00_RDS       | drds_users   |
|    1 | DRDS_01_RDS       | drds_users   |
+------+-------------------+--------------+
2 rows in set (0.06 sec)
  1. 非分库分表的表默认存储在第0个分库。

  2. 针对 TOPOLOGY 进行单表遍历。  

    • 第0个分库运行当前 SQL
    /!TDDL:node=DRDS_00_RDS*/ SELECT * FROM DRDS_USERS;

     

    • 第1个分库运行当前 SQL
    /!TDDL:node=DRDS_01_RDS*/ SELECT * FROM DRDS_USERS;

     

注意:推荐每次扫描前执行 SHOW TOPOLOGY FROM TABLE_NAME 获取最新的表拓扑结构。

若为分表,则 SQL 中的表名为分表名。

DRDS分库分表学习-如何高效扫描 DRDS 数据

原文:https://www.cnblogs.com/puzi0315/p/12667205.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!