Drupal 7 开发内部培训资料, 分头诗人

drupal7的多站点是共用一个数据库还是使用多个数据库只共享用户性能好些?

赞成!
0
否决!

Drupal7可以通过多种方法来建立多站点:一是一套核心代码,多个数据库,用户和内容不可共享;二是一套核心代码,多个数据库,用户可共享;三是一套核心代码,一个数据库,用户可共享;四是使用第三方模块Domain Access module,一套核心代码,一个数据库,用户和内容可以共享。

对drupal7而言,是共用一个数据库还是使用多个数据库只共享用户性能好些?如果只用一个数据库的话,那么单表的数量会逐渐增多,听说linux系统对3000个以上的文件处理起来速度会变慢!

5 个回答

赞成!
0
否决!

我建议还是用多个数据库..用户共享. 可实现单一登陆

赞成!
0
否决!

各有优缺。但基本都是对于大型网站来说的。

一是一套核心代码,多个数据库,用户和内容不可共享;

这样核心可以放在一台服务器,数据库放在不同服务器, 结构:sites server,  siteA database server, sateB database server.

二是一套核心代码,多个数据库,用户可共享;

这个是基于single sign on单点登录的。用户共享,能设置同步登陆,前提是同一个域的,如 sitea.drupalla.com, siteb.drupalla.com, 可以同步session,前提好像是session 设置是数据库保存,而不是文件保存方式。角色可以每个站独立,也可以共享。而多个数据库跟单个数据库的区别应该是,多个数据库,可以分在不同的服务器,读的方式,就在settings.php 设置有多个数据库。

三是一套核心代码,一个数据库,用户可共享;

这个是比较传统的,后期如果是服务器性能到了极限了,可以独立把整套核心代码复制一份到 其他服务器,然后二级域名指向那个服务器,也是没影响的。一个数据库就在读方面相对容易点,不需要切换。但分离就比较麻烦,如果想不同网站数据库放在不同server,可能需要切开数据库。

四是使用第三方模块Domain Access module,一套核心代码,一个数据库,用户和内容可以共享。

Domain  Access 是对多站点的一个加强模块。他附带了一些子模块如。

Domain Alias: 顾名思义 就是给domain 加 alias

Domain Configuration: 其实就是settings.php 的配置,能指定每一个domain的配置。如 site name, theme, menu, ...

Domain Content: 使用这个模块后, 从 Content management -> Content -> List 看到的是所有的 node, 在 list 里面沒法分辨出是哪个 domain. 使用這個模块, 会从最上层加上一个Affiliated content 的功能表, 就可以分出这个 node 是属于哪些 domain 了. (如果有使用 admin_menu, 记得 rebuild menu)

Domain Theme: 這个模块功能比较简单, 就是可以让每个 domain 都可以有独立的 theme. 和 Domain Configuration 相同, 其实 settings.php 就可以做到了.

Domain Views: 這个模块提供了和 Views 整合的 filter 和 argument, 可以利用他來过滤內容. 但並不是每种 type 都有支持, 比如 node 有, 但 comment 就没有

赞成!
0
否决!

谢谢楼上的热心回答,不过我更想知道对drupal7而言,是共用一个数据库还是使用多个数据库只共享用户性能好些?如果只用一个数据库的话,那么单表的数量会逐渐增多,听说linux系统对3000个以上的文件处理起来速度会变慢!再次感谢

赞成!
0
否决!

性能差不多的。影响性能的主要地方不在此。

赞成!
0
否决!

请问一下诗人,一套核心代码,多个数据库,共享指定的表,比如内容表,用户表。在settings.php中如何配制,谢谢。。。