Limit warunku MySQL IN


Odpowiedzi:


107

Nie, nie ma, sprawdź instrukcję funkcji IN :

Liczba wartości na INliście jest ograniczona tylko wartością max_allowed_packet .


więc jeśli mam na przykład aktualizację za pomocą 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?
— Oleg Abrazhaev

1
@OlegAbrazhaev Słowo INkluczowe nie ma żadnych wbudowanych ograniczeń, jednak mogą istnieć inne ograniczenia, takie jak max_allowed_packetpośrednio ograniczające liczbę wartości. Jeśli ustawisz tę wartość na 1024 (bajty), możesz efektywnie używać tylko ograniczonej liczby wartości.
— Progman

21

O ile wiem, w mysql nie ma limitu pozycji w INwyciągu.

Jednak w wyroczni istnieje limit 1000 pozycji w INwyciągu.

Im więcej elementów IN, tym wydajność zapytania będzie wolniejsza, chyba że ta kolumna zostanie zindeksowana.


4
zależy, jeśli IN jest kluczem podstawowym wyszukiwania, jest to szybka przyczyna powrotu z indeksu
— ajreal

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.