MySQL IN điều kiện giới hạn


Câu trả lời:


107

Không, không có, hãy kiểm tra hướng dẫn sử dụng về chức năng IN :

Số lượng giá trị trong INdanh sách chỉ bị giới hạn bởi giá trị max_allowed_packet .


vì vậy, nếu tôi có, ví dụ, một bản cập nhật với where id IN (14000 ids), nó sẽ hoạt động cho đến khi truy vấn cập nhật nhỏ hơn 64MB (đó là giá trị mặc định), phải không?
Oleg Abrazhaev

1
@OlegAbrazhaev INTừ khóa không có bất kỳ giới hạn tích hợp nào, tuy nhiên, có thể có các giới hạn khác như giới hạn max_allowed_packetcó thể gián tiếp giới hạn số lượng giá trị. Nếu bạn đặt giá trị này thành 1024 (byte), bạn chỉ có thể sử dụng một số giá trị giới hạn một cách hiệu quả.
Progman

20

Theo như tôi biết trong mysql, không có giới hạn cho các mục trong INcâu lệnh.

Trong altough oracle, có giới hạn 1000 mục trong INcâu lệnh.

Nhưng càng có nhiều mục IN, hiệu suất truy vấn của bạn sẽ chậm lại trừ khi cột đó được lập chỉ mục.


3
phụ thuộc, nếu IN là khóa chính của tìm kiếm, thì nguyên nhân nhanh chóng là do chỉ mục trả về
ajreal

-2

nhập mô tả hình ảnh ở đây

1073741824 Đây là giới hạn được đưa ra trong tài liệu Mysql

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.