hi again,
I have question like that:
SELECT /*! SQL_BUFFER_RESULT */
DISTINCT branza.branzaid, branza.branzanazwa
FROM branza, klientbranza, klientwojewodztwo
WHERE
branza.branzaid = klientbranza.branzaid
AND klientbranza.klientid = klientwojewodztwo.klientid
AND wojewodztwoid =9
ORDER BY bsort ASC
and
EXPLAIN SELECT /*! SQL_BUFFER_RESULT */ DISTINCT branza.branzaid,
branza.branzanazwa
FROM branza, klientbranza, klientwojewodztwo
WHERE branza.branzaid = klientbranza.branzaid AND klientbranza.klientid =
klientwojewodztwo.klientid AND wojewodztwoid =9
ORDER BY bsort ASC
shows me:
table type possible_keys key key_len ref rows Extra
klientwojewodztwo ref kl_idx,woj_idx woj_idx 3 const 55054 Using where;
Using temporary; Using filesort
klientbranza ref branzaid,klientid klientid 8 klientwojewodztwo.klientid 1
branza ref id_na id_na 2 klientbranza.branzaid 1
but
EXPLAIN SELECT /*! SQL_BUFFER_RESULT */
STRAIGHT_JOIN DISTINCT branza.branzaid, branza.branzanazwa
FROM branza, klientbranza, klientwojewodztwo
WHERE branza.branzaid = klientbranza.branzaid AND klientbranza.klientid =
klientwojewodztwo.klientid AND wojewodztwoid =9
ORDER BY bsort ASC
shows me:
table type possible_keys key key_len ref rows Extra
branza ALL id_na NULL NULL NULL 1451 Using temporary; Using filesort
klientbranza ref branzaid,klientid branzaid 2 branza.branzaid 969 Distinct
klientwojewodztwo ref kl_idx,woj_idx kl_idx 8 klientbranza.klientid 1
Using where; Distinct
how to understand that?
what should be the correct order in where clause and what indexes should be
used?
for this moment I have such indexes:
table branza:
bsort primary
id_na(branzaid,branzanazwa)
table klientbranza:
branzaid
klientid
table klientwojewodztwo:
klientid
wojewodztwoid
all these indexes are just "index" type [not unique or full...]
how to correct interpret these explains and how to correct this?
with regards
DeRyl
--
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]