sql >> Database >  >> RDS >> Mysql

MySQL-prestaties - IN-clausule versus gelijk aan (=) voor een enkele waarde

De meeste andere antwoorden bieden niets afdoends, alleen speculatie. Dus, gebaseerd op de goed advies van @Namphibian's antwoord , ik heb een EXPLAIN . uitgevoerd op sommige vragen vergelijkbaar met die in de OP.

De resultaten staan ​​hieronder:

EXPLAIN voor een zoekopdracht met = 1 :

EXPLAIN voor een zoekopdracht met IN(1) :

EXPLAIN voor een zoekopdracht met IN(1,2,3) :

Zoals je kunt zien, optimaliseert MySQL IN(1) hetzelfde zijn als = 1 in dit soort vragen. Het antwoord van @mes lijkt erop te wijzen dat dit echter niet altijd het geval is bij complexere zoekopdrachten.

Dus voor degenen die te lui waren om de EXPLAIN . uit te voeren zelf, nu weet je het. En ja, misschien wilt u de EXPLAIN . uitvoeren op uw eigen vraag om er zeker van te zijn dat het op deze manier wordt afgehandeld. :-)



  1. Moeilijkheden bij het installeren van mysql gem op Ubuntu

  2. Meerdere velden sorteren in MySQL

  3. hoe de standby-database te herstellen van een ontbrekend archieflogboek

  4. Sta alle externe verbindingen toe, MySQL