2010-03-17 13 views
5

Quale funzionerà meglio quando si cerca una chiave con un prefisso specifico in MySQL? ; -Confronta Mysql usando sinistra (X, 2) = "AB" o X come "AB%" per la velocità?

i) in cui a sinistra (X, 2) = "AB"

o

ii) dove X come "AB%"

+0

Vorrei provare con 'X> = 'AB' e X <'AC'' se trovare la' C 'non è un problema (presumo certi ordini di caratteri). Ma non so quale di queste opzioni porti MySql a trovare una soluzione "scansione di intervallo" come quella che dico. Scommetto su (ii) – helios

risposta

6

Supponendo di avere un indice sulla colonna, il secondo è più veloce. Il database può utilizzare un indice quando si utilizza LIKE ma non è possibile quando si utilizza SINISTRA. In termini tecnici, LIKE è sargable ma SINISTRA no. È possibile trovare ulteriori informazioni here.

Problemi correlati