私は最近RedisとMongoDBを試していますが、MongoDBまたはRedisのいずれかにIDの配列を格納する場合が多いようです。MySQL IN演算子について質問しているので、この質問についてはRedisを使用します。
IN演算子内に多数(300〜3000)のIDをリストすることは、どれほどパフォーマンスが高いのか疑問に思いました。これは次のようになります。
SELECT id, name, price
FROM products
WHERE id IN (1, 2, 3, 4, ...... 3000)
通常は一緒に結合して特定のカテゴリから製品を取得する、製品とカテゴリのテーブルのような単純なものを想像してみてください。上記の例では、Redis()の特定のカテゴリの下で、ID 4のカテゴリからすべての製品IDを返し、演算子内の上記のクエリに配置していることがわかります。category:4:product_idsSELECTIN
これはどのくらいのパフォーマンスですか?
これは「状況によって異なります」ですか?または、具体的な「これは(受け入れられない)」または「速い」または「遅い」LIMIT 25がありますか、それとも追加する必要がありますか、それとも役に立ちませんか?
SELECT id, name, price
FROM products
WHERE id IN (1, 2, 3, 4, ...... 3000)
LIMIT 25
または、Redisによって返される製品IDの配列をトリミングして25に制限し、クエリLIMIT内から3000ではなく25 IDのみをクエリに追加して25に追加する必要がありますか?
SELECT id, name, price
FROM products
WHERE id IN (1, 2, 3, 4, ...... 25)
任意の提案/フィードバックは大歓迎です!