このクエリを最適化する方法があるかどうか知りたいです:
SELECT
jdc_organizations_activities.*,
jdc_organizations.orgName,
CONCAT(jos_hpj_users.firstName, ' ', jos_hpj_users.lastName) AS nameContact
FROM jdc_organizations_activities
LEFT JOIN jdc_organizations ON jdc_organizations_activities.organizationId =jdc_organizations.id
LEFT JOIN jos_hpj_users ON jdc_organizations_activities.contact = jos_hpj_users.userId
WHERE jdc_organizations_activities.status LIKE 'proposed'
ORDER BY jdc_organizations_activities.creationDate DESC LIMIT 0 , 100 ;
クエリログが表示されたら:
Query_time: 2
Lock_time: 0
Rows_sent: 100
Rows_examined: **1028330**
クエリプロファイル:
2)これらのテーブルには多くの挿入と更新があることを念頭に置いて、テーブルにインデックスを付ける必要があります。
Tizagチュートリアルから:
インデックスは、MySQLテーブルで有効にしてパフォーマンスを向上させることができる特別なものですが、いくつかの欠点があります。新しいインデックスを作成すると、MySQLは、テーブルに変更が加えられるたびに更新する必要がある情報の個別のブロックを構築します。これは、テーブルのエントリを絶えず更新、挿入、および削除している場合、パフォーマンスに悪影響を与える可能性があることを意味します。
インデックスを追加し、lower()、group by、およびワイルドカードを削除した後に更新します
時間: 0.855ms