o私は200万のレジスターを持つテーブルを持っていますが、それはもっとすぐに成長するでしょう。基本的に、このテーブルには、それぞれの記述子を持つ画像の関心のあるポイントが含まれています。クエリポイントに空間的に近いポイントを選択するクエリを実行しようとすると、合計実行時間が長すぎます。より正確には、持続時間/フェッチ=0.484秒/27.441秒。また、クエリは非常に単純で、17000行までしか返されません。
私の質問は:
SELECT fp.fingerprint_id, fp.coord_x, fp.coord_y, fp.angle,
fp.desc1, fp.desc2, fp.desc3, fp.desc4, fp.desc5, fp.desc6, fp.desc7, fp.desc8, fp.desc9, fp.desc10,
fp.desc11, fp.desc12, fp.desc13, fp.desc14, fp.desc15, fp.desc16, fp.desc17, fp.desc18, fp.desc19,
fp.desc20, fp.desc21, fp.desc22, fp.desc23, fp.desc24, fp.desc25, fp.desc26, fp.desc27, fp.desc28,
fp.desc29, fp.desc30, fp.desc31, fp.desc32
FROM fingerprint fp
WHERE
fp.is_strong_point = 1 AND
(coord_x BETWEEN 193-40 AND 193+40) AND (coord_y BETWEEN 49-15 AND 49+15 )
LIMIT 1,1000000;
それが私がやったことです。
- で変更しようとしまし
key_buffer_size
たmy.ini
が、あまり変更がありませんでした。 - さらに、coord_xとcoord_yをインデックスとして設定しようとしましたが、クエリ時間が遅くなりました。
- テーブルはcoord_xフィールドの範囲で分割されているため、より良い結果が得られました。
フェッチ時間を短縮するにはどうすればよいですか?ミリ秒に減らすことは可能ですか?