私のアプリケーションはC#[.NET 3.5]およびMySQL 5.1バックエンドにあります。ユーザの種類に合わせてレコードフィルタリングを高速化する
私はTextBoxとDataGridViewを持つWindowsフォームを持っています。ユーザーがTextBoxに少数の文字を入力すると、Like節を含むSQLクエリが実行され、下のDataGridViewに表示されているレコードがフィルタ処理されます。
アイテムリストがかなり大きくなりました。また、適切な文字入力ごとにSQLクエリを実行していません。別の方法として、アプリケーションが読み込まれたときにDataSetを作成し、最近の株式ポジションを先に入力する方法があります。 LINQなどを使用してメモリ内のレコードセットをフィルタリングするよりも、しかし、この方法も最適化されていません。なぜなら、新しい請求書が作成されるたびに在庫からのアイテムが減り、インメモリレコードセットを更新する必要があるたびにです。
他の最適化された高速の方法はありますか?
これが.NET 4の場合、私はリアクティブエクステンション(Rx)を提案します。これは入門ハンズオンラボの例の1つです。しかし、v4より前のv4がどの程度うまくサポートされているかはわかりません。 – Richard
私が提案できるのは、分を使用することです。検索クエリが実行される前の長さ。たとえば、検索語が3文字以上のときにのみクエリを実行します。 –