首页 文章

Magento catalog_product_flat使用Shell重新编制索引错误并且没有通过截断表来更正[复制]

提问于
浏览
0

这个问题在这里已有答案:

我正在尝试使用Shell命令在magento中重新索引我的catalog_product_flat表 . 重建索引失败了 . 出现以下错误 .

我在这个网站上看到了一个解决方案'截断'catalog_product_flat_#表,然后重新索引 . 即使这样,使用shell的reindex也失败了 . 现在,catalog_product_flat_1-6的所有6个表都是空的 . 该网站仍在运行,但天知道直到何时 . PLS帮助

产品平面数据索引处理未知错误:异常'PDOException',消息'SQLSTATE[42000]: Syntax error or access violation: 1118 Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs'在/home/kya/public_html/lib/Zend/Db/Statement/Pdo.php:228堆栈跟踪:#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(Array) )#2 /home/kya/public_html/lib/Zend/Db/Statement.php(300):Varien_Db_Statement_Pdo_Mysql - > _ execute(Array)#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):Zend_Db_Adapter_Abstract-> query('ALTER TABLE ca...', Array) #5 /home/kya/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(419): Zend_Db_Adapter_Pdo_Abstract->query('ALTER TABLE ca ... ', Array) #6 /home/kya/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(340): Varien_Db_Adapter_Pdo_Mysql->query(' ALTER TABLE ca...') #7 /home/kya/public_html/lib/Varien/Db/Adapter/Pdo/Mysql.php(839): Varien_Db_Adapter_Pdo_Mysql->raw_query('ALTER TABLE ca ... ') #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 / co re / 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

1 回答

  • 0

    看看这个:使用的表类型的最大行大小,不计算BLOB,是65535.你必须将一些列更改为TEXT或BLOBs'

    解决方案:您有太多可搜索的属性 . 重建索引期间的magento将填充所有 . 这导致了一个非常大的行 .

    我建议您删除所有平面表,因为一旦创建了列,它们将不会被删除 .

    还要确保属性数据类型需要较小的空间 . 因为行大小是存在问题的地方 .

相关问题