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

全局表數據庫

全局表的做用
  在分片的狀況下,當業務表由於規模而進行分片之後,業務表與這些附屬的字典表之間的關聯,就成了比較棘手的問題,考慮到字典表具備如下幾個特性:   服務器

  1.   變更不頻繁
  2.   數據量整體變化不大
  3.   數據規模不大,不多有超過數十萬條記錄。   

        鑑於此,MyCAT 定義了一種特殊的表,稱之爲「全局表」,全局表具備如下特性: 性能

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

全局表配置(配置全部可能用到節點)spa

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

全局表說明
 一、準對Select操做,mycat會隨機如今一個節點輸出結果內容;
    二、準對Insert-Update-Delete操做,Mycat會操做全部節點code

E-R分片表blog

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

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

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

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

二、父表的分片字段不是子表的外鍵字段:配置

      這種狀況下,父表經過分片字段查詢能很快定位到數據庫的位置提升查詢性能;子表經過父表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>
相關文章
相關標籤/搜索