Se si dispone di una tabella molto grande, la ricerca in base a valori non indicizzati può essere estremamente lenta. In termini MySQL, questo tipo di query finisce per essere una "scansione della tabella", che è un modo per dire che deve testare in sequenza ogni riga della tabella. Questo ovviamente non è il modo migliore per farlo.
L'aggiunta di un indice aiuterà con lettura velocità, ma il prezzo da pagare è leggermente inferiore scrivi velocità. C'è sempre un compromesso quando si effettua un'ottimizzazione, ma nel tuo caso la riduzione del tempo di lettura sarebbe immensa mentre l'aumento del tempo di scrittura sarebbe marginale.
Tieni presente che l'aggiunta di un indice a una tabella di grandi dimensioni può richiedere molto tempo, quindi verificalo con i dati di produzione prima di applicarlo al tuo sistema di produzione. La tabella sarà probabilmente bloccata per la durata di ALTER TABLE
dichiarazione.
Come sempre, usa EXPLAIN
sulle tue query per determinare la loro strategia di esecuzione. Nel tuo caso sarebbe qualcosa del tipo:
EXPLAIN SELECT * FROM table1 WHERE my_big_number=19287319283784