Quale delle seguenti query è più veloce (LIKE vs CONTAINS)?
SELECT * FROM table WHERE Column LIKE '%test%';
o
SELECT * FROM table WHERE Contains(Column, "test");
Quale delle seguenti query è più veloce (LIKE vs CONTAINS)?
SELECT * FROM table WHERE Column LIKE '%test%';
o
SELECT * FROM table WHERE Contains(Column, "test");
Risposte:
Il secondo (supponendo che tu intenda CONTAINS
e lo inserisca effettivamente in una query valida) dovrebbe essere più veloce, perché può utilizzare una qualche forma di indice (in questo caso, un indice di testo completo). Naturalmente, questa forma di query è disponibile solo se la colonna si trova in un indice di testo completo. In caso contrario, è disponibile solo il primo modulo.
La prima query, usando LIKE, non sarà in grado di utilizzare un indice, poiché inizia con un carattere jolly, quindi richiederà sempre una scansione completa della tabella.
La CONTAINS
query dovrebbe essere:
SELECT * FROM table WHERE CONTAINS(Column, 'test');
CONTAINS
? Che ne dici? La forma originale della domanda aveva Column CONTAIN("%test%",Column)>0
quale non era vicino dove valido. Non è ancora del tutto corretto.