一、關於索引方面的作用:
不管是本地索引還是全域性索引,在功能上沒有任何差別,都是為了加快某個列的查詢!
適合的情景不同!
因為當向hbase的表中插入資料時,資料在更新時,也需要更新索引!
本地索引:
索引以列族的形式儲存在表中,在更新資料和更新索引時,只需要向資料所在的regionserver發請求即可!適合多寫的場景!
全域性索引:
索引以表的形式儲存在hbase中,索引所在的region,也是由乙個regionserver負責的!
如果表中的資料由102的rs負責,索引所在的region由103的rs負責!
在插入資料時,需要向102的rs發請求,還需要向103的rs傳送寫請求!
在多寫少讀的場景下,加重了rs的請求壓力和網路負載!
適合的是多讀的場景!
二、rowkey設計時
在做rowkey設計時,請先考慮業務是讀比寫多、還是讀比寫少,hbase本身是為寫優化的,即便是這樣,也可能會出現熱點問題,而如果我們讀比較多的話,除了考慮rowkey設計原則外,還可以考慮hbase的coprocessor甚至elastic search結合的方法,無論哪種方式,都建議做實際業務場景下資料的壓力測試以得到最優結果。
Rust evmap庫多讀多寫嘗試
先用evmap上的例子來嘗試 cargo.toml evmap 10.0.2 一 模式 1 多寫多讀模式一 use parking lot use std thread use std sync use std time use std collections extern crate evmap ...
多寫多讀 執行緒安全佇列3
執著放入乙個資料 沒有空間就一直等待 template bool tmultirwqueue put element data 獲得空閒訊號量通知 if m semaput.wait 放入元素 myput data 釋放占用訊號量 if m semaget.release return true 執...
資料庫寫多讀少和讀多寫少會怎麼處理?
3,雙主互備 防止單點主庫宕機,引起寫資料出現問題,採取雙主互備模式,其實跟主從相比就是反過來再做了一遍主從!都為主,都為從的意思!4,分庫分表 資料庫資料量過大的時候,單庫甚至讀寫分離都已經成為高併發的瓶頸,這個時候採取一定的策略將資料分布在不同的資料庫上是最好的選擇,比如搭建8庫128表,能充分...