ประสิทธิภาพของตัวดำเนินการ MySQL“ IN” บนจำนวนค่า (ใหญ่?)
ฉันได้ทดลองกับ Redis และ MongoDB เมื่อไม่นานมานี้และดูเหมือนว่ามักจะมีหลายกรณีที่คุณจะเก็บอาร์เรย์ของidไว้ใน MongoDB หรือ Redis ฉันจะติดกับ Redis สำหรับคำถามนี้ตั้งแต่ฉันถามเกี่ยวกับ MySQL ในการประกอบการ ฉันสงสัยว่านักแสดงเป็นอย่างไรในการแสดงรายการIDจำนวนมาก (300-3000) ในตัวดำเนินการ IN ซึ่งจะมีลักษณะดังนี้: SELECT id, name, price FROM products WHERE id IN (1, 2, 3, 4, ...... 3000) ลองนึกภาพง่ายๆอย่างตารางผลิตภัณฑ์และหมวดหมู่ซึ่งโดยปกติคุณอาจเข้าร่วมด้วยกันเพื่อรับผลิตภัณฑ์จากหมวดหมู่หนึ่งๆ ในตัวอย่างด้านบนคุณจะเห็นว่าภายใต้หมวดหมู่ที่กำหนดใน Redis ( category:4:product_ids) ฉันส่งคืนรหัสผลิตภัณฑ์ทั้งหมดจากหมวดหมู่ด้วยรหัส 4 และวางไว้ในSELECTข้อความค้นหาด้านบนภายในตัวINดำเนินการ นักแสดงเป็นอย่างไร? นี่คือสถานการณ์ "ขึ้นอยู่กับ" หรือไม่? หรือมีรูปธรรม "นี่คือ (ไม่) ยอมรับ" หรือ …