Гей, я повинен використовувати умову IN у своєму операторі MySQL з великим набором ідентифікаторів.
Приклад
SELECT * FROM users WHERE id IN (1,2,3,4...100000)
Чи існує обмеження для елементів, які може містити вираз IN?
Гей, я повинен використовувати умову IN у своєму операторі MySQL з великим набором ідентифікаторів.
Приклад
SELECT * FROM users WHERE id IN (1,2,3,4...100000)
Чи існує обмеження для елементів, які може містити вираз IN?
Відповіді:
Ні, немає, перевірте посібник щодо функції IN :
Кількість значень у
IN
списку обмежена лише значенням max_allowed_packet .
where id IN (14000 ids)
, воно буде працювати, поки запит на оновлення не перевищить 64 МБ (що є значенням за замовчуванням), так?
IN
Ключове слово не має жодних вбудованих обмежень, однак можуть бути й інші обмеження, наприклад, max_allowed_packet
які можуть побічно обмежувати кількість значень. Якщо встановити це значення 1024 (байти), ви можете ефективно використовувати лише обмежену кількість значень.
Наскільки мені відомо в mysql, у IN
заяві немає обмежень на елементи .
В оракулі, хоча в IN
заяві обмежено 1000 елементів .
Але більше елементів у IN
, ефективність вашого запиту сповільниться, якщо цей стовпець не проіндексовано.