sql >> Database teknologi >  >> RDS >> Mysql

Ydeevne af RegEx vs LIKE i MySql-forespørgsler

Det er muligt, at det kunne være hurtigere, fordi LIKE-betingelsen kan evalueres hurtigere end det regulære udtryk, så hvis de fleste rækker fejler testen, kan det være hurtigere. Det vil dog være langsommere, hvis de fleste rækker lykkes, da der skal køres to tests for succesfulde rækker i stedet for kun én. Det afhænger også af, hvilket udtryk optimizeren vælger at køre først.

En endnu større speedup kan ses, hvis du har noget som dette:

SELECT * FROM (
   SELECT * FROM lineage_string
   WHERE lineage LIKE '179%'
) WHERE lineage regexp '^179(/|$)'

Nu kan et indeks bruges til at finde sandsynlige rækker, fordi LIKE '179%' er sargable . Mange rækker skal slet ikke kontrolleres.

Som altid er den bedste måde at være sikker på at måle det selv på dine faktiske data.



  1. Synkroniser 2 tabeller af forskellige databaser - MySQL

  2. Vælg uden en FROM-klausul i Oracle

  3. Kan ikke forbinde google apps script til mysql via localhost

  4. Opret et Multi-Step SQL Server Agent Job (T-SQL)