none
数据设计以及性能问题 RRS feed

  • 问题

  • 大家好,有一个多数据库问题向前辈请教,问题如下:

    有3个web项目,涉及内容很独立,数据库分别为DB1、DB2、DB3,但是这三个项目同时共用一个会员数据库 会员DB,

    DB1、DB2、DB3三个数据中的数据都是由会员产生的,所以他们三个数据库中的每条数据都是会有一个会员Id的,

    现在的问题是,假如一个web项目是社交的,数据库为DB1,其中需要取得好友的列表(假如每页显示20个好友), 在列表中需要显示每个好友的昵称,如何取得?

    方案1:跨数据库join连接取得,但是会员DB或DB1数据量非常之大,性能可否保证?

    方案2:取得好友列表的id列表,然后再去会员DB中的数据库中查找?

    请问还有其他什么方案吗?

    2012年5月21日 15:40

答案

  • 1.数据库数据量大的话,可以采取只读分离的方法,可以降低数据库服务器的压力,如果查找,从只读库中查找,如果有增删改,去操作主库。

      例如:对于同一个数据库DB,建立多个只读库DB,可以使用SQLSERVER的订阅复制功能,保证只读库和主库之间的数据同步。

    2.对于方案1,个人认为采用只读分离的方法,并为表中的字段建立合适的索引,以及优化下SQL,应该是可以满足条件的。

    3.对于方案2,如果在界面上显示好友的ID列表,如果不影响用户体验的效果下可以使用。


    http://blog.csdn.net/zx13525079024

    2012年5月22日 6:24