mysql数据库分布式存储架构

哎。。。。。。。。一句长叹,动手能力啊!

最近一个礼拜都在考虑我们这个SAAS平台的数据存储,如何能让它方便扩容,而不影响程序----不要像MIXI(www.mixi.jp)等大型网站,查询点数据,要先把数据库实例的tableName传递过去,在程序中传来传去。到时候不想不 改程序都难(也不是做不到,但是是非常麻烦;ebay比较聪明,自己做了个ORM机制);经过最近的研究发现国人也有人做了个东西(广州的一个小伙,具体sourceforge上有),但是这样的东西mysql-proxy早给我们做好了,只不过它还是个测试版,没有正式版本用,但是很稳定。结果我们的数据库架构很是简单,也很容易进行扩容。

 

   啰嗦了半天,其实是很简单的 ,先将你的业务进行垂直分割------没那么玄乎的,就是把模块单独部署,每个模块访问自己的DB,然后如果今后测试发现DB的瓶颈出来了,就在吧你的表结果进行水平分割,就是多加几个一样的表结构,具体访问策略以前大家可能是hash,rang等-----所以有了上面mixi他们都是传递个表名过去。以前这个分割策略很重要,现在可喜的是mysql5.1版本发布了,它提供了分区的功能,可以代替以前的水平划分----------具体使用很简单,官方文档说明的很清楚,我就不罗嗦了。

   如果看到这里还不知道我在说什么,你就骂我是猪好了。

 

------------------就是mysql-proxy+mysql5.1的分区+mysql的主从复制,就那么简单。

你可能感兴趣的:(SaaS)