鍍金池/ 問答/Java  GO  數(shù)據(jù)庫  HTML/ mysql單機內(nèi)部分庫

mysql單機內(nèi)部分庫

目前項目使用的是單機mysql,內(nèi)部也只有一個庫,現(xiàn)在想要根據(jù)不同的子業(yè)務(wù)在單機內(nèi)部拆分成多個庫,避免后續(xù)子業(yè)務(wù)拓展但仍操作同一個大庫的情況,但是現(xiàn)在有以下幾個疑問:

1、單機內(nèi)部拆分成多庫之后是否會對原來的sql操作造成比較大的影響,比如單庫內(nèi)的跨表查詢變成了多庫跨表,還有事務(wù)操作也有可能需要跨庫。

2、單機內(nèi)部分庫之后是否有助于提高穩(wěn)定性,會不會出現(xiàn)一個庫掛掉,另外的庫是好的,整體單機表現(xiàn)正常的情況?

3、單機內(nèi)部分庫之后還是會受制于單機本身的性能瓶頸吧,分庫后能提高IO嗎?

4、分庫之后還有哪些缺點?

回答
編輯回答
情已空

分庫確實有很多問題,但是現(xiàn)在大多數(shù)互聯(lián)網(wǎng)企業(yè)由于業(yè)務(wù)數(shù)據(jù)龐大基本上都會使用分庫分表。分庫分表最根本的原因就是解決單機負(fù)載壓力,把一臺機器上的壓力分散到多臺服務(wù)器上去。
分庫也確實有一些問題需要考慮:
1.分庫規(guī)則和策略(分片原則)。什么樣的數(shù)據(jù)進(jìn)如DB1中,什么樣的數(shù)據(jù)進(jìn)入DB2中
2.跨庫事物
3.分布式業(yè)務(wù)主鍵如何設(shè)計
4.庫表和庫表之間如果需要join
5.分頁的問題
6.多數(shù)據(jù)源整合的問題
其實,單機分庫只是解決了表的壓力,并沒有解決服務(wù)器的壓力。
現(xiàn)在也有很多開源組件支持分庫分表,可以參考下mycat sharding-jdbc等等一些開源項目。

歡迎加Q群交流討論Java技術(shù) 696883318

2018年9月6日 06:34
編輯回答
孤影

看樓主的意思是應(yīng)該公司的業(yè)務(wù)拆分,不同的業(yè)務(wù)對應(yīng)不同的數(shù)據(jù)庫,不是應(yīng)對大數(shù)據(jù)存儲而進(jìn)行的分庫分表;那就是業(yè)務(wù)重構(gòu)了,sql、代碼、架構(gòu)什么的肯定都是重來了,為什么還考慮對以前的sql有影響呢?
如果是只是業(yè)務(wù)分庫,業(yè)務(wù)數(shù)據(jù)量又不是很大的話,性能什么的都不是暫時需要考慮的問題,一般都是數(shù)據(jù)量到達(dá)一定的量級才會考慮分庫分表,現(xiàn)在最關(guān)鍵的還是完善好系統(tǒng)架構(gòu),好的架構(gòu)對后期的維護(hù)和擴(kuò)展真的很重要。

還是覺得樓主重點問的是業(yè)務(wù)拆分,提問分庫很容易造成誤解,看題目還以為是針對大數(shù)據(jù)量的分庫分表。純屬個人觀點!

2018年4月30日 07:52
編輯回答
下墜
1、sql操作需要帶庫名
2、跨庫事務(wù)即內(nèi)部xa
3、單機多庫與單庫一樣,一掛全掛
4、不做額外處理的話,IO性能并不會有什么變化
2017年12月19日 07:04