MyCat全局表和ER--筆記(三)


全局表

全局表的作用
  在分片的情況下,當業務表因為規模而進行分片以后,業務表與這些附屬的字典表之間的關聯,就成了比較棘手的問題,考慮到字典表具有以下幾個特性:   

  1.   變動不頻繁
  2.   數據量總體變化不大
  3.   數據規模不大,很少有超過數十萬條記錄。   

        鑒於此,MyCAT 定義了一種特殊的表,稱之為“全局表”,全局表具有以下特性:

  1.    全局表的插入、更新操作會實時在所有節點上執行,保持各個分片的數據一致性
  2.    全局表的查詢操作,只從一個節點獲取
  3.     全局表可以跟任何一個表進行 JOIN 操作

全局表配置(配置所有可能用到節點)

<table name="TBL_LOG" primaryKey="ID" type="global" dataNode="dn1,dn2" />

全局表說明
 1、准對Select操作,mycat會隨機現在一個節點輸出結果內容;
    2、准對Insert-Update-Delete操作,Mycat會操作所有節點

E-R分片表

  也稱為父子表,主外鍵關聯表;處理存在2種請求對應關系。

1、父表的分片字段是子表的外鍵字段:

  這種情況下,父表通過分片字段查詢能很快定位到數據庫的位置提高查詢性能;子表通過父表ID也能很快定位到分片服務器數據庫地址;

<table name="ORDER1" primaryKey="ID" dataNode="dn1,dn2" rule="mod-long"> 
            <childTable name="ORDER_DETAIL" primaryKey="ID" joinKey="ORDER_ID" parentKey="ID" /> 
</table>

2、父表的分片字段不是子表的外鍵字段:

      這種情況下,父表通過分片字段查詢能很快定位到數據庫的位置提高查詢性能;子表通過父表ID查詢時,Mycat將遍歷所有節點數據,實現數據查詢;

<table name="ORDER2" primaryKey="ID" dataNode="dn1,dn2" rule="province-str"> 
               <childTable name="ORDER_DETAIL2" primaryKey="ID" joinKey="ORDER_ID" parentKey="ID" /> 
</table>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM