ビューの「クエリ実行時間」が非常に高いのはなぜですか?


7

メンバーとそのユーザーポイントのリストを表示する基本的なビューがあります。ビューのクエリ出力は、このクエリの実行に1500ms以上かかることを示しています。

クエリビルド時間24.71 ms

クエリ実行時間1546.84 ms

レンダリング時間の表示88.29 ms

SELECT users.picture AS users_picture、users.uid AS uid、users.name AS users_name、users.mail AS users_mail、users.created AS users_created、userpoints_total.points AS userpoints_total_points、 'user' AS field_data_field_motorcycle_user_entity_type、 'user' AS field_data_field_reity_count_user_userユーザーのAS field_data_field_address_user_entity_type

FROM {users}ユーザーLEFT JOIN {userpoints_total} userpoints_total ON users.uid = userpoints_total.uid WHERE(((users.status <> '0')AND(users.uid NOT IN( '1'))))LIMIT 10 OFFSET 0

そのクエリをコピーしてmyphpadminに貼り付けて実行すると、5ミリ秒未満かかります。「実行時間」で他に何が起こっていますか?私はそれについてウェブで良い助けを見つけることができませんでした。

回答:


7

テストするときは、必ずクエリキャッシュをオフにしてください。 SET SESSION query_cache_type = OFF

次のステップはEXPLAIN、SQLで実行することです。

EXPLAIN SELECT users.picture AS users_picture、users.uid AS uid、users.name AS users_name、users.mail AS users_mail、users.created AS users_created、userpoints_total.points AS userpoints_total_points、 'user' AS field_data_field_motorcycle_user_entity_type、 'user' AS field_data_field_type_review_count 「ユーザー」AS field_data_field_address_user_entity_type


3
ありがとう!weevilgenius.net/2010/09/mysql-explain-referenceには、EXPLAINの紹介がありました。LEFT JOINをINNER JOINに変更すると、数秒ではなくmsで実行されることがわかりました。再度、感謝します!!!
uwe 2012
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.