sql >> データベース >  >> RDS >> Mysql

IN演算子を使用したMySQLクエリの最適化

    この場合、categoryIdのインデックスは役に立ちません。IN(...)クエリは、とにかくインデックスルックアップの代わりにシーケンススキャンを生成します。

    最初にシステムを再設計して、複数のカテゴリの選択を取り除き、適切でない場合はクエリ結果をキャッシュすることを検討します。

    たとえば、ヘルパーテーブルitems_category_groups(hash、item_id)を作成し、複数のカテゴリに対するクライアントクエリの後で、それらの結合されたIDをハッシュしてこのテーブルを検索できます。見つからない場合は、高価なクエリを作成してこの表に記入してください。見つかった場合は、これらのテーブルを結合する安価なクエリを作成します。 memcachedなどの他のキャッシュツールも機能します。




    1. Oracletnsnames.oraのSIDとサービス名の違い

    2. Javaプリペアドステートメントが実行されない

    3. ORA-65139:XMLメタデータ・ファイルとデータ・ファイルの不一致

    4. MySQL LIMIT、OFFSETを使用したページネーション