Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Jak zwiększyć wydajność zapytania w SQL?

coś takiego

Select * from TableName where Name Like 'Spa%'
ORDER BY case when soundex(name) = soundex('Spa') then '1' else soundex(name) end

powinno działać dobrze.

właściwie to będzie działać lepiej

Select * from TableName where Name Like 'Spa%'
ORDER BY DIFFERENCE(name, 'Spa') desc;

FWIW Zrobiłem kilka szybkich testów i jeśli 'Nazwa' jest w INDEKSIE NIEZAKLOSTEROWANYM, SQL użyje indeksu i nie wykona skanowania tabeli. Ponadto LIKE wydaje się zużywać mniej zasobów niż charindex (który zwraca mniej pożądane wyniki). Testowane na sql 2000.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zapytanie MySQL do średniego czasu

  2. MYSQL odróżnia wpis dwóch kolumn nawet po przełączeniu

  3. Jak połączyć się z MySQL za pomocą Microsoft .NET

  4. Buforowanie PreparedStatement - co to znaczy (jak to działa)

  5. Jak stworzyć atak typu SQL injection za pomocą Shift-JIS i CP932?