0
1秒以内に結果を返すクエリを使用しています。私はこのクエリでは第三のテーブルを追加する場合クエリで3番目のテーブルを追加すると結果時間が遅くなります
クエリがあり、
SELECT creator.first_name, image.id, image.image_code, image.project, image.location, image.image_date, image.image_view, image.copyright
FROM img_images image, img_creator creator
WHERE creator.image_id = image.id AND (
(image.image_code LIKE '%text%')
OR (image.project LIKE '%text%')
OR (image.location LIKE '%text%')
OR (creator.first_name LIKE '%text%'))
ORDER BY creator.first_name
は今、それは結果を出すために約20〜30秒かかります。
クエリ、私はすぐに応答を与えるために、このクエリを最適化するにはどうすればよい
SELECT creator.first_name, image.id, image.image_code, image.project, image.location, image.image_date, image.image_view, image.copyright, sources.author
FROM img_images image, img_creator creator, img_source sources
WHERE creator.image_id = image.id AND sources.image_id = image.id AND (
(image.image_code LIKE '%text%')
OR (image.project LIKE '%text%')
OR (image.location LIKE '%text%')
OR (creator.first_name LIKE '%text%'))
ORDER BY creator.first_name
? すべての表に適切な索引付けがあります。結果セットの行数が少ないことが期待されているとき、また
SELECT creator.first_name, image.id, image.image_code, image.project, image.location,
image.image_date, image.image_view, image.copyright, sources.author
FROM img_images image
JOIN img_creator creator ON (creator.image_id = image.id OR creator.first_name LIKE '%text%')
LEFT JOIN img_source sources ON (sources.image_id = image.id)
WHERE image.image_code LIKE '%text%' OR image.project LIKE '%text%' OR image.location LIKE '%text%'
ORDER BY creator.first_name;
、しかし:たまに左を強制
テーブル、サンプルデータと出力をしてください説明:クエリは、私は価値があるしようとして個々の単一の値の検索を見つけ、複雑であり、および/または大きなテーブルを必要とします。私はあなたがすでにそれを持っているのを見る – e4c5