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.