【问题标题】:Separate read and write databases in Magento在 Magento 中分离读写数据库
【发布时间】:2012-01-23 12:54:37
【问题描述】:

我在网上找不到任何关于如何为 Magento 配置两个独立数据库的示例——一个用于读取请求,一个用于写入请求。我认为这应该发生在 app/etc/local.xml 但我不知道语法是什么。有人知道语法或有博客文章的链接或我的搜索没有出现的东西吗?

我正在运行 Magento 1.6.1.0

谢谢

【问题讨论】:

  • 有趣的问题。请问在什么样的场景下,读写分离的DB会被full使用?
  • 对于Load Balancing。 Magento 的阅读量非常大。通过使用RDS 只读副本,我可以在数据库上分配负载并处理更多流量。

标签: magento


【解决方案1】:

在您的app/etc/local.xml 中填写<resources> 的下一个方式:

    <resources>
        <db>
            <table_prefix><![CDATA[]]></table_prefix>
        </db>
        <core_read>
            <connection>
                <use /> 
                <host><![CDATA[localhost]]></host>
                <username><![CDATA[root]]></username>
                <password><![CDATA[]]></password>
                <dbname><![CDATA[db_read_name]]></dbname>
                <initStatements><![CDATA[SET NAMES utf8]]></initStatements>
                <model><![CDATA[mysql4]]></model>
                <type><![CDATA[pdo_mysql]]></type>
                <pdoType><![CDATA[]]></pdoType>
                <active>1</active>
            </connection>
        </core_read>
        <core_write>
            <connection>
                <use />
                <host><![CDATA[localhost]]></host>
                <username><![CDATA[root]]></username>
                <password><![CDATA[]]></password>
                <dbname><![CDATA[db_write_name]]></dbname>
                <initStatements><![CDATA[SET NAMES utf8]]></initStatements>
                <model><![CDATA[mysql4]]></model>
                <type><![CDATA[pdo_mysql]]></type>
                <pdoType><![CDATA[]]></pdoType>
                <active>1</active>
            </connection>
        </core_write>
    </resources>

【讨论】:

  • 我收到Fatal error: Call to a member function getTableName() on a non-object in /path/to/magento/magento/app/code/core/Mage/Core/Model/Resource.php on line 296 任何想法?
  • 没有想法。你刷新缓存了吗?
  • 只需要添加 &lt;use&gt;&lt;/use&gt; 以便它覆盖 app/etc/config.xml 中的内容。但是,我决定改写 default_read 和 default_write。我认为它更好。
  • 是的,&lt;use /&gt; 元素显然很关键。
  • 我在 Magento CE 1.9.0.1 中收到了 Fatal error: Call to a member function setQueryHook() on a non-object in /app/code/core/Mage/Core/Model/Resource/Setup.php on line 347,我确实包含了 &lt;use /&gt;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-09-12
  • 2011-06-18
  • 1970-01-01
  • 2018-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多