2012-01-23 34 views
6

我找不到任何有關如何爲Magento配置兩個單獨數據庫的示例 - 一個用於讀取請求,一個用於寫入請求。我認爲這應該發生在app/etc/local.xml中,但我不知道語法是什麼。有人知道這個語法,或者有一個博客文章的鏈接,或者我的搜索沒有出現嗎?Magento中的單獨讀寫數據庫

我跑Magento的1.6.1.0

感謝

+0

有趣的問題。請問在什麼樣的情況下,將數據庫分開讀取和寫入使用完整? – mas

+0

對於[負載平衡](http://en.wikipedia.org/wiki/Load_balancing_%28computing%29)。 Magento閱讀密集程度非常高。通過使用[RDS](http://aws.amazon.com/rds/)只讀副本,我可以在數據庫上分配負載並處理更多流量。 – Max

回答

20

在你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> 
+1

我收到致命錯誤:調用第296行的/path/to/magento/magento/app/code/core/Mage/Core/Model/Resource.php中的非對象的成員函數getTableName() ' 有什麼想法? – Max

+0

沒有想法。你刷新了緩存嗎? – Zyava

+2

只需要添加'',以覆蓋app/etc/config.xml中的內容。不過,我決定改寫default_read和default_write。我認爲它更好。 – Max