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 .

Progman
źródło
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.

Sachin Shanbhag
źródło
4
zależy, jeśli IN jest kluczem podstawowym wyszukiwania, jest to szybka przyczyna powrotu z indeksu
ajreal
-2

wprowadź opis obrazu tutaj

1073741824 Jest to limit podany w dokumentach MySQL

praveen
źródło