閱讀562 返回首頁    go 小米


遍曆全表操作__開發手冊_分布式關係型數據庫 DRDS-阿裏雲

DRDS 在全表掃描時支持聚合函數進行統計匯總,目前全表掃描默認是關閉的,需要您顯示的通過配置打開,因為我們認為默認關閉對於您而言,性能更可控。 具體的配置方式,您可以訪問我們提供的運維管理平台,找到對應的表後進行配置:

1) 如果目標表沒有分庫分表,那麼 DRDS 可以支持任何聚合函數,因為實際上 DRDS 是直接把原 SQL傳遞到後端 MySQL 執行。

2) 非全表掃描:SQL語句在經過 DRDS 路由後,直接發送到後端單個 MySQL 庫上執行。如果拆分鍵在 WHERE 條件中都是 = 關係,常會出現這種情況。在非全表掃描的情形下,同樣可以支持任何聚合函數。

3) 全表掃描:目前支持的聚合函數有 COUNT, MAX, MIN, SUM, 另外在全表掃描時同樣支持 LIKE, ORDER BY 與 LIMIT 語法, 但是不支持 GROUP BY 語法。

4) 並行的全表掃描:在一些時候您可能希望直接從所有庫上麵dump數據到其他地方,我們也提供了方法可以允許您感知到當前下層有多少個庫,並允許您單獨的針對這些庫進行操作。

第一步 獲取當前總的庫表個數

  1. mysql:> show topology from tddl_users;
  2. +------+--------------------------+---------------------+
  3. | ID | GROUP_NAME | TABLE_NAME |
  4. +------+--------------------------+---------------------+
  5. | 0 | DRDS_00_RDS | drds_users |
  6. | 1 | DRDS_01_RDS | drds_users |
  7. +------+--------------------------+--------------------+

第二步 針對topology進行單表遍曆

如:我想進行第一個表的查詢,那麼可以運行

  1. /*TDDL:node='DRDS_00_RDS'*/ select * from drds_users;

即可在第0個庫運行當前SQL

  1. /*TDDL:node='DRDS_01_RDS'*/ select * from drds_users;

即可在第1個庫運行當前SQL

需要注意的是,這個庫的個數可能會因為進行擴容等情況隨時的發生變化,我們不保證這些GROUPS的名字一定是永遠固定不變的,所以請務必每次都先運行show topology from table語句來獲得最新的表拓撲。

最後更新:2016-11-23 17:31:29

  上一篇:go 全局唯一數字序列使用__開發手冊_分布式關係型數據庫 DRDS-阿裏雲
  下一篇:go DRDS自定義注釋__開發手冊_分布式關係型數據庫 DRDS-阿裏雲