MySQL оптимизация с IN или OR - PullRequest
       23

MySQL оптимизация с IN или OR

0 голосов
/ 19 августа 2010

У меня есть набор больших значений, которые нужно сравнивать в mysql.

Могу ли я узнать, что быстрее?Например:

Opt 1:
SELECT * FROM table WHERE v = 1 or v = 2 or v = 3 or v = 4 or... v = 100

Opt 2: 
SELECT * FROM table WHERE v IN (1,2,3,4,5,6,7,8,...,100)

Могу ли я узнать, какая опция быстрее для больших значений?Есть ли лучшее решение?Спасибо.

Ответы [ 3 ]

2 голосов
/ 19 августа 2010

Это все последовательные числа?Тогда я бы использовал

SELECT * FROM table WHERE v BETWEEN 1 AND 100
1 голос
/ 19 августа 2010

При условии, что числа не будут последовательными , предложение IN предпочтительнее по двум причинам:

  1. Более читабельно
  2. Оптимизировано для работы быстрееИЛИ заявления.
0 голосов
/ 19 августа 2010

Когда я изучал базы данных, мой преподаватель сказал мне, что они фактически сводятся к одному и тому же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...