explain
select
*
from
zipcode_distances z
inner join
venues v
on z.zipcode_to=v.zipcode
inner join
events e
on v.id=e.venue_id
where
z.zipcode_from='92108' and
z.distance <= 5
Sto cercando di trovare tutti gli "eventi in luoghi entro 5 miglia di codice postale 92108", tuttavia, sto avendo difficoltà a ottimizzare questa query.Come posso evitare una scansione completa della tabella su questa query mysql?
Ecco ciò che il spiegano appare come segue:
id, select_type, table, type, possible_keys, key, key_len, ref, rows, Extra
1, SIMPLE, e, ALL, idx_venue_id, , , , 60024,
1, SIMPLE, v, eq_ref, PRIMARY,idx_zipcode, PRIMARY, 4, comedyworld.e.venue_id, 1,
1, SIMPLE, z, ref, idx_zip_from_distance,idx_zip_to_distance,idx_zip_from_to, idx_zip_from_to, 30, const,comedyworld.v.zipcode, 1, Using where; Using index
sto ottenendo una scansione completa della tabella sul "e" tavolo, e non riesco a capire cosa indice ho bisogno di creare per ottenerlo essere veloce
Tutto il consiglio sarebbe apprezzato
Grazie
Avete bisogno di tutte le colonne di tutte le tabelle nel set di risultati? –
Sto cercando di evitare di utilizzare una sottoquery "in". – john
La descrizione colloquiale di ciò che sto cercando di fare è trovare i luoghi i cui codici zip si trovano nei codici postali che ho trovato in prossimità di 92108. Quindi si unisce alla sede e quindi si unisce agli eventi associati a quella sede . – john