Maison > Article > base de données > Lequel est le plus efficace à utiliser en union ou en ?
J'ai toujours pensé que c'était plus efficace, mais cette fois j'étais un peu confus.
SELECT * FROM runinfo WHERE status in (0,2,1,3,4,7,9,10);
L'efficacité de cette requête est souvent supérieure à 1 seconde.
mysql> SELECT * FROM runinfo WHERE status in (0,2,1,3,4,7,9,10);
106 lignes dans l'ensemble (1,20 sec)
Après l'avoir remplacé par l'écriture suivante,
SELECT * FROM runinfo WHERE status = 0 union SELECT * FROM runinfo WHERE status = 1 union SELECT * FROM runinfo WHERE status = 2 union SELECT * FROM runinfo WHERE status = 3 union SELECT * FROM runinfo WHERE status = 4 union SELECT * FROM runinfo WHERE status = 7 union SELECT * FROM runinfo WHERE status = 9 union SELECT * FROM runinfo WHERE status = 10
efficacité Il y a une grande amélioration.
mysql> 108 rows in set (0.02 sec)
Je ne peux pas vous dire la raison précise. Le champ de statut est indexé et il y aura des mises à jour de ce champ.
Faites d'abord un disque, puis découvrez-le plus tard.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!