Ik ben voor een project bezig een aantal queries te optimalizeren en in de meeste gevallen lukt dat redelijk. Het zijn kleine datasets ( < 1000 records) maar liever een goed datamodel dan een slechte.
Nu loop ik echter tegen wat kleine dingen aan die ik niet goed weet te plaatsen.
Voorbeeldje
Levert via explain het volgende op
Tabel discounts heeft een index unique op clubid
tabel Clubs heeft indexen oa op clubid(unique) en type(index).
Hoe krijg ik nu die Using temporary; Using filesort weg ?
Nu loop ik echter tegen wat kleine dingen aan die ik niet goed weet te plaatsen.
Voorbeeldje
SQL:
1
2
3
4
5
6
7
8
9
10
11
| SELECT discounts.clubid, clubs.naam, clubs.type as tiepe FROM discounts LEFT JOIN clubs ON ( discounts.clubid = clubs.clubid ) ORDER BY tiepe, clubs.naam |
Levert via explain het volgende op
code:
1
2
3
| id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE discounts ALL NULL NULL NULL NULL 46 Using temporary; Using filesort 1 SIMPLE clubs eq_ref clubid clubid 4 bcntest.discounts.clubid 1 |
Tabel discounts heeft een index unique op clubid
tabel Clubs heeft indexen oa op clubid(unique) en type(index).
Hoe krijg ik nu die Using temporary; Using filesort weg ?
Verstand van Voip? Ik heb een leuke baan voor je!