第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

doctrine處理分表的策略詢問

Hi,洪大師:

? ? ?我現(xiàn)接手一個(gè)項(xiàng)目的升級(jí),因?yàn)樵?xiàng)目是用的symfony2做的開發(fā),因?yàn)樽畛蹰_發(fā)的時(shí)候沒有考慮數(shù)據(jù)量的問題,用了幾年之后現(xiàn)在要對(duì)其中的幾個(gè)表做分表處理,分表的策略商定的是對(duì)主鍵進(jìn)行取模?,F(xiàn)在問題就出現(xiàn)了,因?yàn)橛胐octrine2的原因一個(gè)表就對(duì)應(yīng)一個(gè)對(duì)象,做分表就是說要重新做map,但是我找了很多的資料,都沒有講這一塊的,我想向您請(qǐng)教一下這個(gè)有沒有什么好的方法可以使用。


By shanJi

正在回答

1 回答

這個(gè)問題沒有你想象的那么簡(jiǎn)單,因?yàn)椴还苣阕罱K怎么分,核心問題是分表之間的數(shù)據(jù)無法很好地整合成一個(gè)數(shù)據(jù)結(jié)果集,比如你對(duì)user表進(jìn)行取模分表,如何實(shí)現(xiàn)搜索所有大于10歲的用戶這種簡(jiǎn)單的操作?而且外鍵關(guān)系也會(huì)完全打亂,其他表里的user_id到底對(duì)應(yīng)的是哪個(gè)user表里的id?


從項(xiàng)目定位上,doctrine2的dbal提供了一些簡(jiǎn)單的sharding功能,但使用起來有很多的限制,你可以查看一下http://doctrine-orm.readthedocs.org/projects/doctrine-dbal/en/latest/reference/sharding.html


當(dāng)然,如果你覺得這些限制對(duì)你來說很重要,你不想失去,那就必須按照你的特定的需求去實(shí)現(xiàn)一套你自己的dbal,orm的相關(guān)部分也需要改,但是這個(gè)工作量就大了,能展開的部分太多,而且和業(yè)務(wù)結(jié)合比較緊密,在此先不做展開。


除此之外,我建議你考慮使用一些mysql proxy軟件去實(shí)現(xiàn)這個(gè)功能,這些軟件模擬了mysql的協(xié)議,對(duì)外提供一個(gè)標(biāo)準(zhǔn)的mysql服務(wù),對(duì)內(nèi)可以連接幾個(gè)分表的真實(shí)mysql數(shù)據(jù)庫。在操作起來和使用一個(gè)mysql數(shù)據(jù)庫沒有區(qū)別,但實(shí)際上卻是由mysql proxy在操作多個(gè)不同的數(shù)據(jù)庫。這種東西應(yīng)該是比較適合你的,但也有很多限制,你可以參考各自的文檔。



1 回復(fù) 有任何疑惑可以回復(fù)我~
#1

老子是山雞 提問者

非常感謝您的回復(fù),我目前通過生命周期的鉤子和__get() 模擬的一下,暫時(shí)能夠勉強(qiáng)滿足需求。您說的那個(gè)自己去實(shí)現(xiàn)一套DBAL ,這個(gè)是在doctrine的接口上改寫?還是直接改他源碼? 有沒有相關(guān)的資料呢? 那個(gè)sharding的我看了,不是很符合我們的需求。謝謝您對(duì)我問題的解答。
2015-03-07 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消

doctrine處理分表的策略詢問

我要回答 關(guān)注問題
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)