Hej, muszę użyć warunku IN w mojej instrukcji MySQL z dużym zestawem identyfikatorów.
Przykład
SELECT * FROM users WHERE id IN (1,2,3,4...100000)
Czy istnieje limit pozycji, które może mieć wyciąg IN?
Hej, muszę użyć warunku IN w mojej instrukcji MySQL z dużym zestawem identyfikatorów.
Przykład
SELECT * FROM users WHERE id IN (1,2,3,4...100000)
Czy istnieje limit pozycji, które może mieć wyciąg IN?
Odpowiedzi:
Nie, nie ma, sprawdź instrukcję funkcji IN :
Liczba wartości na
IN
liście jest ograniczona tylko wartością max_allowed_packet .
where id IN (14000 ids)
, będzie działać, dopóki zapytanie aktualizacyjne nie będzie mniejsze niż 64 MB (co jest wartością domyślną), prawda?
IN
kluczowe nie ma żadnych wbudowanych ograniczeń, jednak mogą istnieć inne ograniczenia, takie jak max_allowed_packet
pośrednio ograniczające liczbę wartości. Jeśli ustawisz tę wartość na 1024 (bajty), możesz efektywnie używać tylko ograniczonej liczby wartości.
O ile wiem, w mysql nie ma limitu pozycji w IN
wyciągu.
Jednak w wyroczni istnieje limit 1000 pozycji w IN
wyciągu.
Im więcej elementów IN
, tym wydajność zapytania będzie wolniejsza, chyba że ta kolumna zostanie zindeksowana.