天天看點

shardingSphere學習一

分庫:将一個資料庫拆分成多個提供不同業務資料處理能力的資料庫

分表:通常是在一張單表的資料過大的時候,會考慮對單表進行拆分

通常需要梳理拆分範圍和影響範圍,進行合理的資料庫和表拆分。

在shardingSphere1.0中,在看到mybatis的列子中,我們可以看到需要配置:mybatisContext.xml和shardingContext.xml。

shardingSphere學習一

而在mybatisContext.xml中:

導入shardingContext.xml
sqlSessionFactoryBean中配置了兩個配置:資料源(shardingDataSource分片資料源)、mapperLocations(mapper.xml的位置)
mapper需要掃描的基包、sqlSessionFactoryBeanName
           

複制

是以我們需要重點關注shardingContext.xml中的資訊。可以看到在shardingContext.xml中配置的事務管理器中,資料源配置是shardingDateSource分片資料源。而配置設定資料源包含的資訊:

配置設定規則、資料源中繼資料、分片配置、度量上下文
           

複制

分片規則的xml中包含的構造方法:分庫規則、分表規則,分庫政策、分表政策,同時從分片規則類中,我們可以看到對于的規則:

資料源規則、表配置設定規則、綁定表規則、資料庫分片政策、表分片政策
           

複制

而分片政策的方法:

1.TableShardingStrategy 表分片政策  SingleKeyModuloTableShardingAlgorithm 單key模表分片算法 
2.DatabaseShardingStrategy 資料源分片政策  SingleKeyModuloDatabaseShardingAlgorithm 單key模庫分片算法
           

複制

如圖所示,圖檔來自shardingSphere的github:

shardingSphere學習一

不管是分庫還是分表都是有三個重要的方法:算法

shardingSphere學習一
doEqualSharding 做等片
doInSharding 做分片
doBetweenSharding 做範圍分片
           

複制

資料源規則dataSourceRule:

通常會将其分成多個資料庫,不同的資料源有不同的key和引用值ref-value
           

複制

也即在mybatis的example中,我們看到了配置shardingContext.xml中配置了資料源,資料源采用的是多資料源,而分片的方式分為資料庫分片和表分片。兩者都有自己的分片算法,而分片算法中都有三個重要的方法:做等片、做配置設定、做範圍分片。