TiDB初步概念

閱讀官方文檔畫如下路線圖:數據庫

儲存:數據結構

rockDB用於單機數據固化:徹底理解分佈式

raft用於分佈式數據同步:徹底理解設計

最終對外展現一整個徹底有序的Key-Value序列:徹底理解索引

重點:有序,就能夠隨機訪問了,事關查詢速度.文檔

  Key-Value :在這裏K-V並非死板的KV,因爲有序的概念在裏面,同時KV都是byte的數據結構,故邏輯上的鍵通常存在KEY裏,但邏輯上的值也可能存在KEY裏.字符串

整個儲存是爲了快速定位而設計的.同步

計算:next

就是如何利用超大有序K-V結構來實現關係數據庫,很重點.數據

  行儲存:Key:表前綴_行前綴_表ID_行ID Value: 字符串化的一行數據:徹底理解

      這個儲存能夠直接找到行,在有序的狀況下也能夠快速全表掃描.

  索引:Key:表前綴_索引前綴_表ID_索引ID_(列名值)  Value: rowID, 徹底理解

      能夠經過列名+值直接找到rowID,在惟一索引狀況下,複雜度恆爲常數.

    Key:表前綴_索引前綴_表ID_索引ID_列名值_主鍵 Value: NULL, 敲黑板

      用於非惟一索引,在查詢給定(列名值)的狀況下,能夠把範圍縮小到全部主鍵所在的邏輯連續區域.

      但具體怎麼縮小,還沒想通,估計是首先定位第一個索引,而後next讀取完,

      目前不理解如何定位到第一個索引,直接構造Key明顯行不通,但隨意猜想主鍵也挺扯淡,

      又多是查詢KEY的分區記錄,能夠找到符合構造前綴的第一個KEY,而後複雜度就是N(索引數)了

  略過了:分佈式schema更新.

待繼續..

相關文章
相關標籤/搜索