我從MySQL閱讀:MySQL的分片和分區在分佈式系統
「與其他碎片化的數據庫,用戶不會丟失的能力 執行JOIN操作,犧牲ACID的保證或參照 完整性(外貿Keys)跨越分片執行查詢和交易 「。
爲了我的理解。 當你選擇SQL vs NoSQL時。
你會選擇NoSQL來實現簡單的橫向擴展(分片和分區),例如你有很多數據不能保存在單個數據庫中,但是會減少事務級ACID和數據庫級連接。
您將爲ACID保證和數據庫連接選擇SQL。但是,要減少橫向可用性。 (你可以在mySQL的頂部添加一層來處理分區和共享自己,但如果你這樣做,你的意志仍然會失去ACID並加入)
但是,上面的語句聲明mySQL是一個「完美」的數據庫,可以處理既可擴展性又保持SQL數據庫的優勢。我在這裏錯過了什麼,或者它只是廣告?
此外,我沒有找到關於mySQL的分片架構如何看起來像任何信息?
這是一個學術問題嗎?或者你是否處於Facebook/Twitter /開始階段?如果是後者,那麼最好的辦法就是實施_something_,並認真計劃每季度重寫一次。在這樣做的時候,你會了解你是否真的需要ACID,NoSQL,Sharding等等,並且你會決定做出取捨。也就是說,回答你的問題還爲時過早。 –