EXPLAIN join - Index problem
Hej Eksperter,Jeg er igang med at optimere mit website, men er stødt på et problem. Den nedenstående query checker om man har rettigheder til at se et billedealbum. For at kunne se det skal enten:
1. Ens gruppe have rettigheder (undergruppe)
2. Ens individuelle bruger have rettigheder (brugerid)
3. Albummet skal være fælles (alle='ja')
Hvorfor er "rows" tallet så højt? Hvor skal jeg sætte indexet?
EXPLAIN SELECT DISTINCT year( dato ) AS year
FROM album
LEFT JOIN album_bruger ON album.id = album_bruger.albumid
LEFT JOIN album_undergrupper ON album.id = album_undergrupper.albumid
WHERE
album.alle = 'ja' ||
album_undergrupper.undergruppe = '$_SESSION[undergruppe]' || album_bruger.brugerid = '$_SESSION[id]'
ORDER BY album.id;
Array
(
[id] => 1
[select_type] => SIMPLE
[table] => album
[type] => ALL
[possible_keys] =>
[key] =>
[key_len] =>
[ref] =>
[rows] => 258
[Extra] => Using temporary; Using filesort
)
Array
(
[id] => 1
[select_type] => SIMPLE
[table] => album_bruger
[type] => ref
[possible_keys] => albumid
[key] => albumid
[key_len] => 4
[ref] => sags_dk.album.id
[rows] => 6
[Extra] => Distinct
)
Array
(
[id] => 1
[select_type] => SIMPLE
[table] => album_undergrupper
[type] => ref
[possible_keys] => albumid
[key] => albumid
[key_len] => 4
[ref] => sags_dk.album.id
[rows] => 16
[Extra] => Using where; Distinct
)