數(shù)據(jù)庫分庫如何做?
網(wǎng)友解答: 歡迎關注我,一個程序員老司機,和你分享編程、運營、需求等等經(jīng)驗和趣事??戳四愕膯栴}描述,應該猜測你是因為數(shù)據(jù)量非常龐大的原因,導致了在一個數(shù)據(jù)庫里面操作有性能問題,于是想到數(shù)
歡迎關注我,一個程序員老司機,和你分享編程、運營、需求等等經(jīng)驗和趣事。
看了你的問題描述,應該猜測你是因為數(shù)據(jù)量非常龐大的原因,導致了在一個數(shù)據(jù)庫里面操作有性能問題,于是想到數(shù)據(jù)庫分庫的操作,因為數(shù)據(jù)庫分庫操作沒有一個固定的公式,每次分庫都必須要進行代碼專業(yè)定制,也就是每次分庫都需要仔細研究,然后才能夠開始著手代碼的編寫,不過,雖然沒有公式,但是還是可以用下面的方法來進行實踐。
首先
分析你的項目功能,然后總結出一些常用的功能,并且向后端工程師或者DBA咨詢,這些常用功能對應的數(shù)據(jù)表都有那些,然后將這些常用的數(shù)據(jù)表的表結構和數(shù)據(jù)都轉移到新的數(shù)據(jù)庫里面去,這里有一個技術問題,就是一定要在用戶非常非常少的情況下進行,否則容易導致數(shù)據(jù)丟失。
其次
上面我們已經(jīng)將常用的數(shù)據(jù)表都分表保存到新的數(shù)據(jù)庫里面去,但是因為這些數(shù)據(jù)表常用,所以你可以根據(jù)需要是否進行分表的操作,以免之后又要反攻分表操作。
最后
雖然我們已經(jīng)完成了分庫的操作,但是現(xiàn)在還有一個問題留給我們,就是應用程序端怎么辦?因為應用程序端之前還在連接之前的數(shù)據(jù)庫,所以如果現(xiàn)在數(shù)據(jù)庫改了,肯定會運行錯誤,所以為了解決這個問題,首先我們必須將應用程序端的代碼改了,并且在本地環(huán)境反復測試,是否有什么問題,然后再上傳到服務器,等用戶少的時候,先執(zhí)行分庫的操作,再執(zhí)行更新應用程序代碼的操作。
希望能夠幫到你,如果還有什么疑問,我們可以在評論中交流。
網(wǎng)友解答:建議使用mycat進行分庫分表,具體技術可以到網(wǎng)絡下載或者回復交流。這個是目前測試過的kingshard, shardingjdbc,mycat三個中,效率最高的,隨時交流