1

Shell コマンドを使用して、magento で catalog_product_flat テーブルのインデックスを再作成しようとしています。再インデックスが失敗しています。次のエラーで。

このサイトで、catalog_product_flat_# テーブルを「切り捨て」てから再インデックス化するソリューションを見ました。それでも、シェルを使用した再インデックスは失敗しました。これで、catalog_product_flat_1-6 の 6 つのテーブルがすべて空になりました。サイトはまだ稼働していますが、いつになるかは神のみぞ知るです。お願いします

製品フラット データ インデックス プロセスの不明なエラー: 例外 'PDOException' とメッセージ 'SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1118 行サイズが大きすぎます。BLOB をカウントしない、使用されるテーブル タイプの最大行サイズは 65535 です。/home/kya/public_html/lib/Zend/Db/Statement/Pdo.php:228 スタックで、一部の列を TEXT または BLOB に変更する必要があります。 trace: #0 /home/kya/public_html/lib/Zend/Db/Statement/Pdo.php(228): PDOStatement->execute(Array) #1 /home/kya/public_html/lib/Varien/Db/Statement/ Pdo/Mysql.php(110): Zend_Db_Statement_Pdo->_execute(配列) #2 /home/kya/public_html/lib/Zend/Db/Statement.php(300): Varien_Db_Statement_Pdo_Mysql->_execute(配列) #3 /home/ kya/public_html/lib/Zend/Db/Adapter/Abstract.php(479): Zend_Db_Statement->execute(Array) #4 /home/kya/public_html/lib/Zend/Db/Adapter/Pdo/Abstract.php(238) ):ca...', Array) #5 /home/kya/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(419): Zend_Db_Adapter_Pdo_Abstract->query('ALTER TABLEca...', Array) #6 /home/kya/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(340): Varien_Db_Adapter_Pdo_Mysql->query('ALTER TABLEca...') #7 /home/kya/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(839): Varien_Db_Adapter_Pdo_Mysql->raw_query('ALTER TABLEca...') #8 /home/kya/public_html/app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php(799): Varien_Db_Adapter_Pdo_Mysql->addColumn('catalog_product... ', 'leg_angles', Array) #9 /home/kya/public_html/app/code/core/Mage/Catalog/Model/Resource/Product/Flat/Indexer.php(1390): Mage_Catalog_Model_Resource_Product_Flat_Indexer->prepareFlatTable(1) # 10 /home/kya/public_html/app/code/core/Mage/Catalog/Model/Product/Flat/Indexer.php(296): Mage_Catalog_Model_Resource_Product_Flat_Indexer->reindexAll() #11 /home/kya/public_html/app/code/ core/Mage/Catalog/Model/Product/Indexer/Flat.php(336): Mage_Catalog_Model_Product_Flat_Indexer->reindexAll() #12 /home/kya/public_html/app/code/core/Mage/Index/Model/Process.php( 209): Mage_Catalog_Model_Product_Indexer_Flat->reindexAll() #13 /home/kya/public_html/app/code/core/Mage/Index/Model/Process.php(255): Mage_Index_Model_Process->reindexAll() #14 /home/kya/public_html/shell/indexer. php(158): Mage_Index_Model_Process->reindexEverything() #15 /home/kya/public_html/shell/indexer.php(198): Mage_Shell_Compiler->run() #16 {main

4

1 に答える 1

0

これを見てください: BLOB をカウントしない、使用されるテーブル タイプの最大行サイズは 65535 です。一部の列を TEXT または BLOB に変更する必要があります。

解決策: 検索可能な属性が多すぎるため、インデックスの再作成中に magento がすべてを入力します。これにより、非常に大きな行が発生します。

列が作成されると削除されないため、すべてのフラット テーブルを削除することをお勧めします。

また、属性データ型に必要なスペースが少ないことを確認してください。行サイズに問題があるためです。

于 2013-03-16T18:18:24.367 に答える