2017-04-05 5 views
3

Magento 1.9.2.1があります。 Apache2とMySQL 5.5上で正常に動作します。MySQL 5.5から5.7でインデックスの使用を停止しました

私は別のサーバに移行しようとしましたが、NGINXとMySQL 5.7を使用しました。

しかし、ウェブサイトは非常に遅くなり始めました(2秒で12秒)。

SELECT 
    `main_table`.`entity_id`, 
    `main_table`.`name`, 
    `main_table`.`path`, 
    `main_table`.`is_active`, 
    `main_table`.`is_anchor`, 
    `url_rewrite`.`request_path` 
FROM 
    `catalog_category_flat_store_1` AS `main_table` 
    LEFT JOIN 
     `core_url_rewrite` AS `url_rewrite` ON 
     `url_rewrite`.`category_id` = `main_table`.`entity_id` AND 
     `url_rewrite`.`is_system` = 1 AND 
     `url_rewrite`.`store_id` = 1 AND 
     `url_rewrite`.`id_path` LIKE 'category/%' 
WHERE 
    (`main_table`.`include_in_menu` = '1') AND 
    (`main_table`.`is_active` = '1') AND 
    (`main_table`.`path` like '1/2/%') 
ORDER BY 
    `main_table`.`position` ASC; 

そして上の使用インデックスがないことを私が発見した説明: は、デバッグの数時間後、私は1つのクエリに問題があることを発見しました。使用中のインデックスを示す古いMySQL 5.5サーバのexplainコマンド。インデックスの使用を強制すると、新しいサーバーは10秒ではなく0.01秒で応答します。しかし、私はmagentoコードのソースファイルを変更することは良い考えではないと思います。

インデックスを選択する際に5.5と同様の方法でMySQL 5.7を強制的に動作させる方法はありますか?

+0

私はこの問題を自分で修正しました。 Magentoのソースを編集して、クエリでインデックスを使用できるようにします。それは非常に醜い解決策ですが、それは動作します。 –

答えて

0

悲しいことに、悲しいことに、5.7から5.5へのMySQLのダウングレードだけで、私にとっては同様の問題が修正されました。 Magento sql query have no index

関連する問題