資料庫水平分庫的一些個人理解

2021-05-28 01:52:35 字數 657 閱讀 7268

說實話我以前還從未接觸過資料庫分庫這一類的知識,以前我所做的一些**都是一些訪問量較小,無需分庫的那一類。但是最近在公司實習,需要改版乙個以前的專案,由於使用者量較大因此必須用到分庫。我自己在往上查了一下關於水平分庫的一些資料,但大多都是一些講什麼是水平分庫,以及它的一些好處,至於如何具體分庫倒沒怎麼見到(或許是本人搜尋水平有限),無奈之下只好找來以前其他設計到分庫的專案原始碼來看,今天在這裡跟大家分享一下我自己研究出來的一些關於水平分庫的個人認識。

就以我所參考的專案為例,它是乙個遊戲型別,主要是按照使用者數量來分庫的,目前情況下是大概30萬使用者分一次庫。首先有乙個最基本的資料庫,裡面就只有一張表,用來存放所有使用者的最最基本的資訊,如uid,頭像位址,還有就是其使用者的其他資訊所存放的資料庫的id號。然後就是資料庫db1,db2....,這些資料庫就是分庫之後的資料庫,其中每個資料庫裡面的結構完全一致。裡面的user表裡不僅存放了使用者的詳細資訊,還有其他表存放了其他的資訊,如建築、任務等,大概有20多張表。然後查表的話,首先是查基本資訊庫,根據存放使用者資料庫資訊的dbid來判斷使用者資訊是存放在哪個資料庫中的,然後再到相應的資料庫中去查詢資訊。

先判斷使用者在哪個資料庫中,然後再去呼叫相應的資料庫配置資訊,建立連線 再查詢。

以上是本人的個人認識和感謝,僅供參考,如有不足之處請見諒。

資料庫水平分庫,垂直分庫的新理解

水平分庫 當資料量巨大時,將資料放到不同的表中,比如表1,表2,表3,垂直分庫 當一張表的字段太多,可拆分出一張或多張分表,根據主鍵唯一標示 新理解 垂直分庫 當一張表中字段不多,當某些字段長度過長,表占用空間很大,檢索表的時候需要執行大量的io 資料庫檢索的本質是對硬碟中的檔案進行io訪問 此時可...

PDV的一些個人理解

最近剛剛考完sas base,對這個考試的一大感受就是,只要你理解了pdv,基本上就不成問題。接下來談談我對pdv的理解吧,也算是學習sas的過程中的乙個筆記。sas的執行有兩個階段需要了解,編譯階段 compilation phase 和執行階段 execution phase 編譯階段sas主要...

Reflect 的一些個人理解

vue 3.0出來後,各種原始碼剖解的文章多了起來,其中proxy和reflect兩個api頻繁出現。查詢了一下阮一峰大佬的文件後,自己也有了一些些理解 reflect物件與proxy物件一樣,也是 es6 為了操作物件而提供的新 api。其中reflect是讓以前類似object.definepr...