次のような値を保持するテーブルがあります。
id | prefix | name
----+----------------+--------------------------
1 | record1 | name for record 1
2 | record2 | name for record 2
3 | record | name for record 3
4 | another rec | name for record 4
指定されたテキストの最長のプレフィックスを選択して名前を返すために、次のSQLを使用します。
select top 1 name from prefixes where :text like prefix + '%' order by prefix desc
そして、これはまさに私が必要としているものです。テキストを与えると、それが私をrecord1
返すname for record 2
ときrecord1
に私を返します。私がそれname for record 1
を与えると、私をa
返しますname for record 4
。
しかし、問題は、これが数回実行され、テーブルが頻繁に更新されることです。したがって、私の場合(210000行しかないテーブル)のパフォーマンスは約300ミリ秒です。これを減らしたいのですが、何か改善できることがありますかクエリまたはデータベース上でさえ?