我从MySQL阅读:MySQL的分片和分区在分布式系统
“与其他碎片化的数据库,用户不会丢失的能力 执行JOIN操作,牺牲ACID的保证或参照 完整性(外贸Keys)跨越分片执行查询和交易 “。
为了我的理解。 当你选择SQL vs NoSQL时。
你会选择NoSQL来实现简单的横向扩展(分片和分区),例如你有很多数据不能保存在单个数据库中,但是会减少事务级ACID和数据库级连接。
您将为ACID保证和数据库连接选择SQL。但是,要减少横向可用性。 (你可以在mySQL的顶部添加一层来处理分区和共享自己,但如果你这样做,你的意志仍然会失去ACID并加入)
但是,上面的语句声明mySQL是一个“完美”的数据库,可以处理既可扩展性又保持SQL数据库的优势。我在这里错过了什么,或者它只是广告?
此外,我没有找到关于mySQL的分片架构如何看起来像任何信息?
这是一个学术问题吗?或者你是否处于Facebook/Twitter /开始阶段?如果是后者,那么最好的办法就是实施_something_,并认真计划每季度重写一次。在这样做的时候,你会了解你是否真的需要ACID,NoSQL,Sharding等等,并且你会决定做出取舍。也就是说,回答你的问题还为时过早。 –