【问题标题】:Multi Database on DrupalDrupal 上的多数据库
【发布时间】:2012-05-07 03:39:26
【问题描述】:

我必须使用 Drupal 实现一个包含多站点的系统。 (预计 1000 个站点) Drupal 允许我们使用多个数据库或一个带前缀的数据库。 对于数千个站点,我可能会选择多个数据库而不是一个带前缀的数据库。并且所有数据库都具有相同的表结构。 但问题是: 有一些非常经常从所有站点(所有数据库)收集信息的查询。 例如:选择 20 个类别为鞋类的产品,并且从所有数据库中获得良好的投票率。 我现在有 3 个解决方案:

  1. 使用 for 循环选择数据库。这意味着 1000 次查询“从 db1.table1 中选择 *,其中类别 = 123 和投票 = 10”;然后选择匹配的产品。我认为这在性能上会更差,因为如果所有数据库中有很多行,就会使用大量内存。
  2. 使用 Select * FROM db1.table1 .... UNION SELECT * FROM db2.table1 .... 我认为这也很糟糕。因为mysql会先从db1中选择,如果20个产品足够多,mysql就会停止查找。
  3. 每当插入所有数据库时,我们都会插入一个带有站点标志的非常大的数据库。因此,我们可以使用一个简单的查询从这个非常大的数据库中进行选择查询:“SELECT * FROM largeDB.table WHERE category=123 and vote=10”。

请多多指教。非常感谢你。 P.S:当我有 1000 个相同的数据库时,请告诉我更多关于数据库维护的问题。

【问题讨论】:

  • 任何人请给我建议。非常感谢
  • 如果您将特定数据库添加为标签(例如 mysql),可能会帮助您获得答案。这个问题似乎没有什么特别面向 Drupal。
  • 是的,这很令人困惑......每个数据库是否都包含特定于站点的相关数据,或者您只是将产品类型(从我得到的)拆分到单独的数据库中?是一个站点还是多个站点?

标签: database drupal


【解决方案1】:

我只是想确保您了解 Drupal 开箱即用的多站点功能?您所要做的就是在站点文件夹中创建一个新文件夹,然后为其创建一个符号链接和/或将其添加到sites.php(取决于服务器可能会或可能不会工作)。

抱歉,如果您已经知道这一点,想确保您不会自定义解决方案,如果这对您有用。它可以在单个 Drupal 安装中很好地处理具有自己数据库的多个站点。不幸的是,我无法帮助处理来自单个站点的多个数据库查询,过去我只是通过手动 PHP 查询来完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多