このクエリでできることは、productNameのインデックスを作成することです。 また、(*)を選択せず、実際に必要な列のみを選択することをお勧めします。
また、選択する必要のある列がわずかである場合、または1つだけの場合は、カバーインデックスを考慮することもできます。例えば
:上記のクエリのために
SELECT productName, buyPrice
FROM products
WHERE productName = 'test';
、私は製品(商品名、buyPrice)のインデックスを追加します。これにより、データベースはインデックスを使用してデータのフィルタリングと取得の両方を行うことができます。これはすばやく行う必要があります。あなたは上記のコメントで述べた他のクエリについて
:
SELECT * FROM products ORDER BY buyPrice
Iだろうインデックス商品この場合、(buyPrice) - あなたがいる限り、それはだとして、ASCまたはDESCで注文する場合は、それは問題ではありません。 ORDER BY内のすべての列は、DESCまたはASCのいずれかです。
また、select(*)を避け、これらのクエリにLIMITを追加することも検討します(実際にはすべての行が必要ですか?)。
クエリーの 'buyPrice'を' SELECT * FROM products ORDER BY buyPrice'と 'SELECT * FROM products ORDER BY buyPrice DESC'と呼びますか?インデックスはデフォルトでASC順に並べ替えられているので、私はそれを効率的に行うと考えています。 – codeDragon
何が起こるか試してみると、インデックスを追加、修正、削除することで決してデータを変更できません。 –
@codeDragon 。 。新しい質問は質問ではなく、コメントでお願いします。 –