2

データベースには、iOSでLIKEを使用して検索するテーブルがいくつかあります。データが大きくなるほど、かなり遅くなります。私はFTS3/FTS4に向けられ、いくつかのドキュメントを読みました。始め方が少しわかりません。(私の記述が正しくなく、ドキュメントの内容を誤って解釈した場合は、訂正してください)。仮想テーブルは、ディスクに保存されていない単なるテーブルのように聞こえます。したがって、現在LIKEを使用して検索している列が4つある場合、4つの仮想テーブルを作成し、元のテーブルのエントリを新しい仮想テーブルの1つの行に挿入してから、通常はその列を検索します。 、MATCH構文を使用して新しい仮想テーブルを検索します。その部分がこれまでのところ正しい場合は、次に何をすべきかがわからなくなります。私の原因'

または、データベース全体のコピーを仮想テーブルに作成し、その方法で情報を取得するだけですか?ありがとう!

4

1 に答える 1

2

仮想テーブルはディスクに直接保存されませんが、通常、いくつかの内部「通常」テーブルを使用して実際にデータを保存し、データへのアクセス方法を変更するだけです。(シャドウテーブルを参照)

複数のテキスト列を1つのFTSテーブルに配置し、それらの1つまたはすべてを検索できます

通常、トークンまたはトークンプレフィックスクエリは、MATCH演算子の左側として指定されたFTSテーブル列と照合されます。または、FTSテーブル自体と同じ名前の特別な列が指定されている場合は、すべての列に対して。

FTSテーブルは「通常の」クエリを効率的に実行できないため、元のテーブルが必要になる可能性があります。FTSテーブルのdocid列は通常、元のテーブルの主キーです。

元のテーブルにもすべてのテキストが含まれている場合は、外部コンテンツFTSテーブルを使用してスペースを節約できます。

于 2013-02-09T08:36:44.780 に答える