sql >> Database >  >> RDS >> Mysql

Kan MySQL Indexen gebruiken als er OR is tussen voorwaarden?

Het zoekplan voor de OR case lijkt aan te geven dat MySQL gebruikt inderdaad indexen, dus het is duidelijk ja, dat kan, althans in dit geval. Dat lijkt heel redelijk, want er is een index op seen , en id is de PK.

Als "logische en redelijke verklaringen" door de werkelijkheid worden tegengesproken, is het veilig om aan te nemen dat de logica gebrekkig is of dat de verklaringen verkeerd of niet van toepassing zijn. Prestaties zijn notoir moeilijk te voorspellen; prestatietests zijn essentieel wanneer snelheid belangrijk is.

U moet degene gebruiken die test sneller op invoer die adequaat modelleert wat het programma in echt gebruik zal zien.

Merk echter ook op dat uw twee zoekopdrachten semantisch niet equivalent zijn:als de rij met id = 5204 heeft ook seen = 3 dan de OR query zal het één keer retourneren, maar de UNION ALL query zal het twee keer retourneren. Het heeft geen zin om te kiezen tussen de juiste code en de onjuiste code op een andere basis dan de juiste.



  1. SQL Server-systeemdatabases – basisconcepten

  2. ScaleGrid gerangschikt in top 100 cloudserviceproviders

  3. Wat is Oracle Database?

  4. Unicode-coderingsfout 'latin-1' codec kan teken '\u2019' niet coderen