Maison  >  Article  >  base de données  >  Lequel est le plus efficace à utiliser en union ou en ?

Lequel est le plus efficace à utiliser en union ou en ?

一个新手
一个新手original
2017-09-30 10:17:313141parcourir

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn