日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
HibernateShard基礎(chǔ)分析

Hibernate Shard有很多值得學(xué)習(xí)的地方,這里我們主要介紹Hibernate Shard 提供了一種虛擬分區(qū)層,包括介紹Hibernate Shard 不支持垂直分區(qū)等方面。

創(chuàng)新互聯(lián)建站是一家集網(wǎng)站建設(shè),山海關(guān)企業(yè)網(wǎng)站建設(shè),山海關(guān)品牌網(wǎng)站建設(shè),網(wǎng)站定制,山海關(guān)網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,山海關(guān)網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

1.水平分區(qū)下的查詢

對于簡單查詢Hibernate Shard可以滿足。

水平分區(qū)下多庫查詢是一個挑戰(zhàn)。主要存在于以下三種操作:
1) distinct因為需要遍歷所有shard分區(qū),并進行合并判斷重復(fù)記錄。
2) order by類似 1)
3) aggregation count,sim,avg等聚合操作先分散到分區(qū)執(zhí)行,再進行匯總。

是不是有點類似于 MapReduce ? 呵呵。

Hibernate Shard 目前通過 Criteria 接口的實現(xiàn)對 聚合提供了較好的支持, 因為 Criteria 以API接口指定了 Projection 操作,邏輯相對簡單。而HQL,原生 SQL 還不支持此類操作。

2. 再分區(qū)和虛擬分區(qū)

當(dāng)數(shù)據(jù)庫規(guī)模增大,需要調(diào)整分區(qū)邏輯和數(shù)據(jù)存儲時, 需要再分區(qū)。

兩種方式:
1)數(shù)據(jù)庫數(shù)據(jù)遷移其他分區(qū);
2)改變記錄和分區(qū)映射關(guān)系。這兩種方式都比較麻煩。尤其“改變記錄和分區(qū)映射關(guān)系”,需要調(diào)整 ShardResolutionStrategy.

Hibernate Shard 提供了一種虛擬分區(qū)層。當(dāng)需要調(diào)整分區(qū)策略時,只需要調(diào)整虛擬分區(qū)和物理分區(qū)映射關(guān)系即可。以下是使用虛擬分區(qū)時的配置創(chuàng)建過程:

Java代碼

 
 
 
  1. Map, Integer> virtualShardMap = new HashMap, Integer>();  
  2. virtualShardMap.put(0, 0);  
  3. virtualShardMap.put(1, 0);  
  4. virtualShardMap.put(2, 1);  
  5. virtualShardMap.put(3, 1);  
  6. ShardedConfiguration shardedConfig =new ShardedConfiguration
    (prototypeConfiguration,configurations,strategyFactory,virtualShardMap);  
  7. return shardedConfig.buildShardedSessionFactory(); 

3.局限:

1)Hibernate Shard 不支持垂直分區(qū), 垂直+水平混合分區(qū)。

2)水平分區(qū)下 查詢功能受到一定限制,有些功能不支持。實踐中,需要在應(yīng)用層面對水平分區(qū)算法進行更多的考慮。

3)不支持跨分區(qū)的 關(guān)系 操作。例如:刪除A分區(qū)上的 s 表,B分區(qū)上的關(guān)聯(lián)子表 t的記錄無法進行參照完整性約束檢查。 (其實這個相對 跨分區(qū)查詢的挑戰(zhàn)應(yīng)該說小的多,也許google工程師下個版本會支持,呵呵)

4)解析策略接口似乎和對象ID全局唯一性有些自相矛盾,AllShardsShardResolutionStrategy 的接口返回的是給定對象ID所在的 shard ID集合,按理應(yīng)該是明確的一個 shard ID.

【編輯推薦】

  1. Hibernate專業(yè)知識介紹
  2. 討論Hibernate和模型對象
  3. Hibernate查詢緩存全面分析
  4. 概括Hibernate主鍵生成機制
  5. Hibernate Pager基礎(chǔ)介紹

網(wǎng)站欄目:HibernateShard基礎(chǔ)分析
本文網(wǎng)址:http://m.5511xx.com/article/cohdidi.html