私はawsに移行するWebシステムを持っており、ほとんどの領域は正常であるようです。 aws側で非常に遅いウェブシステム上の特定の1つのクリックがあります。私はそれを古いシステムと比較するために実行されるmysqlクエリを見つけることができ、すべてが同じで、インデックスさえも同じです。クエリは異なる速度で実行されているMySQLクエリ
select distinct cf_1274 from vtiger_cf_1274
inner join vtiger_role2picklist on vtiger_role2picklist.picklistvalueid = vtiger_cf_1274.picklist_valueid
where roleid in ("H3","H4","H5","H51","H50","H49","H2") and picklistid in (select picklistid from vtiger_cf_1274)
order by sortid asc
の下に私は2つの間で見ることができる唯一の違いは、古いMySQLサーバのバージョンが5.0.95以降のバージョンであるということです5.6.X
である私も、実行することができました両方で説明してください、そして、私は違いを見ました。新しいシステムでは、以前のものとは異なり、Explainクエリの余分な列にいくつかの「Join Buffer(Block Nested Loop)」がありました。私はこれが問題でなければならないと仮定していますが、それにどのように接近するかはわかりません。
あなたは質問をするのを忘れている必要があります。 – Ibu
'とpicklistid in(picklistidをvtiger_cf_1274から選択)'が必要なのはなぜですか?それはいつも真実ではありませんか? – Fabricator
RDSパラメータグループのパラメータの1つだったので、ブロックネストループを無効にしました。これはスピードの問題を解決しました。問題は、MySQLサーバ5.0.Xと5.6.Xの間で異なるデフォルト値が設定されていることです – Monzingo