Có vẻ như đây là sự cố (hiện đang gặp sự cố tương tự), hai dòng sau:
INDEX `IDX_ALPHANUM_INFO_TEXT_ATTRIBUTE_ID_VALUE` (`attribute_id`, `value`),
INDEX `IDX_ALPHANUM_INFO_TEXT_ENTITY_TYPE_ID_VALUE` (`entity_type_id`, `value`),
Cần có các giá trị số được liệt kê như sau:
INDEX `IDX_ALPHANUM_INFO_TEXT_ATTRIBUTE_ID_VALUE` (`attribute_id`, `value`(255)),
INDEX `IDX_ALPHANUM_INFO_TEXT_ENTITY_TYPE_ID_VALUE` (`entity_type_id`, `value`(255)),
Cắm nó vào và nó sẽ hoạt động. Bí quyết là làm cho nó để chèn một cách chính xác. Vì lợi ích ngắn gọn, tôi sẽ không đăng toàn bộ hàm, nhưng trong Mage_Eav_Model_Entity_Setup::createEntityTables
ở khoảng dòng 1341, bạn cần sửa đổi các dòng sau:
->addIndex($this->getIdxName($eavTableName, array('attribute_id', 'value')),
array('attribute_id', 'value'))
->addIndex($this->getIdxName($eavTableName, array('entity_type_id', 'value')),
array('entity_type_id', 'value'))
Như sau:
->addIndex($this->getIdxName($eavTableName, array('attribute_id', 'value')),
array('attribute_id', $type == 'text' ? array('name' => 'value', 'size' => 255) : 'value'))
->addIndex($this->getIdxName($eavTableName, array('entity_type_id', 'value')),
array('entity_type_id', $type == 'text' ? array('name' => 'value', 'size' => 255) : 'value'))
Tôi không chắc bạn nên đặt giá trị kích thước thành bao nhiêu, nhưng tôi nghĩ rằng đặt nó thành 64k đầy đủ sẽ đánh bại mục đích lập chỉ mục ngay từ đầu. Hy vọng rằng ai đó biết nhiều hơn một chút về sql hơn tôi sẽ kêu gọi.
Hy vọng điều đó sẽ hữu ích.