インデックスとより良い SQL クエリを使用する方法と方法についてのアイデアや考えを知りたいです。
これが私のSQLクエリの例です:
SELECT albums.id AS album_id, albums.name AS album_name, albums.upc, albums.status,
albumstatus.description AS album_status, DATE_FORMAT(albums.created, '%Y-%m-%d') AS created_date,
albuminfos.label
FROM albums,albumstatus, albumtypes, albuminfos
WHERE albums.status = albumstatus.id AND albumtypes.id = albums.albumtype_id AND albums.id = albuminfos.id
AND albums.account_id = 9999
AND albums.status IN (1, 2)
そして、mysql EXPLAIN を使用して出力を試みました。
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE albums ref PRIMARY,account_id,status,albumtype_id account_id 4 const 4148 Using where
1 SIMPLE albumstatus eq_ref PRIMARY,id PRIMARY 4 albums.status 1 Using where
1 SIMPLE albumtypes eq_ref PRIMARY PRIMARY 1 albums.albumtype_id 1 Using index
1 SIMPLE albuminfos eq_ref PRIMARY PRIMARY 4 albums.id 1
多くのLEFT JOINを使用し、それらを主キーに接続する男です...私の友人は、インデックスを使用して結果を取得する速度を向上させるように私に言いました..インデックスが速度を遅くすることがわかったとき、私は混乱しましたクエリの作成: INSERT、DELETE、UPDATE で、album および albuminfos テーブルにはいつでも新しいレコードまたは更新されたレコードが含まれている可能性があります。
- 私のクエリは良いですか?
- mysql EXPLAIN で知っておくべきことは何ですか?
- インデックスは使用できますか? はいの場合..どのように?
- 私のセットアップの善悪は?
ありがとう!