首页 新闻 会员 周边 捐助

分布式数据库如何实现?

0
悬赏园豆:100 [已解决问题] 解决于 2012-09-29 14:49

以前没接触过这方面的技术,现在随着系统数据的越来越大,要将数据库进行分库。

请问大牛们:

1、数据如何分库比较好?

2、分多个数据库后查询怎么办?假如要查询的两个表在不同的机器上,如何进行join?

3、多个数据库的事务如何保证?

 

分库的工作已经做了一部分,暂定的方案是:

1.将一些业务表按省内和省外进行分库,省内在一台服务器上,省外是另外的服务器上。因为省内和省外的关联不是很大,所以就这么分了。只是有一些统计需要将省内和省外的数据一起统计,这个还不知道如何实现。

2、一些基础表,比如用户表、部门表、用户权限等表,同时存在于省内省外的服务器上,定时进行同步。

前台采用.Net, 数据库是SQL Server。这种方法是否可行?

 

谢谢先!

 

回答的人不是很多...

大家随便说几句也好呀... 提供点学习资料也好...

暴走排骨的主页 暴走排骨 | 初学一级 | 园豆:112
提问于:2012-09-27 23:40
< >
分享
最佳答案
-2

1、数据如何分库比较好?

这个只能说看情况。一个独立的功能模块,如果压力大的话,就可以单独放出来了

2、分多个数据库后查询怎么办?假如要查询的两个表在不同的机器上,如何进行join?

分布式场景要避免join。你可以这样:一个完全独立的功能模块,其中包含N张表,你把这些都部署到一台服务器上;如果不是完全独立,则尽量减少其关联性,然后加冗余

 

学习的话,最近在看MongoDB,虽然是NoSql,但是处理分布式的思路是相同的,欢迎交流

收获园豆:60
CrazyJinn | 小虾三级 |园豆:799 | 2012-09-29 10:22
其他回答(5)
0

google搜索database sharding很很多的资料、开源实现等

收获园豆:10
2012 | 园豆:21645 (高人七级) | 2012-09-28 08:23
0

select 库名.dbo.表名 left join  库名.dbo.表名

Michael.li | 园豆:291 (菜鸟二级) | 2012-09-28 16:37
0

不能两全其美的,分布式的事务恐怕要自己控制,自己写代码验证。

根据业务分库,根据访问量分库,这个看你自己的考虑了。

分库的时候要考虑,设计分库分表的时候,尽量避免join,可能需要冗余之类的。

收获园豆:30
Virus-BeautyCode | 园豆:1619 (小虾三级) | 2012-09-28 17:32
0

可以看看这款数据库MeayunDB,能帮助你解决,http://www.cnblogs.com/czcuestc/p/3182183.html

czcuestc | 园豆:104 (初学一级) | 2013-10-19 11:43
0

xue xi le

ming_311 | 园豆:202 (菜鸟二级) | 2015-08-07 09:14
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册