Struktura tabel:

Tabela 1
Kod
Kolumna    Typ    
g_id     mediumint(8)    
t_id_1     smallint(5)    
t_id_2     smallint(5)    
g_team_1     varchar(50)
g_team_2     varchar(50)
g_date     datetime    
g_live     tinyint(3)

Indeks primary na g_id oraz dodatkowy indeks na (t_id_1, t_id_2, g_date, g_live)

Tabela 2
Kod
Kolumna    Typ    
t_id     smallint(5)    
t_gw_name varchar(50)
gw_cid tinyint(3)


Indeks primary na t_id

Zapytanie:
  1. SELECT g_id, t_id_1, t_id_2, g_team_1, g_team_2, g_date, g_live, t1.t_gw_name AS t_gw_name_1, t1.gw_cid AS gw_cid_1, t2.t_gw_name AS t_gw_name_2, t2.gw_cid AS gw_cid_2 FROM t_games
  2. JOIN t_teams t1 ON (t_id_1 = t1.t_id) JOIN t_teams t2 ON (t_id_2 = t2.t_id)
  3. WHERE g.g_date < "2013-07-24 20:00:00" AND g.g_live < 2


Jako explain dostaję:

Kod
id     select_type     table     type     possible_keys     key     key_len     ref     rows     Extra     
1     SIMPLE            g       ALL         t_id_1        NULL    NULL    NULL    16     Using where
1     SIMPLE            t1     eq_ref     PRIMARY     PRIMARY     2     t_id_1     1     
1     SIMPLE            t2     eq_ref     PRIMARY     PRIMARY     2     t_id_2     1


Co należałoby podmienić, aby pozbyć się pełnego skanowania?