1 つの TEXT (単語) 列と最大 100 万行のテーブルがある場合、このクエリを最適化する最善の方法は次のとおりです。
SELECT name
FROM searchIndex
WHERE name LIKE '%q%u%e%r%y%'
ORDER BY (CASE
WHEN name LIKE 'query' THEN 1
WHEN name LIKE 'query%' THEN 2
WHEN name LIKE '%query' THEN 3
WHEN name LIKE '%query%' THEN 4
WHEN name LIKE 'q%u%e%r%y%' THEN 5
ELSE 6
END);
現在、私はSQLiteを使用しています。ただし、任意の (無料の) データベース システムと任意のテーブル構造を試すつもりです。
これは Mac OS X アプリケーション (ドキュメント ブラウザ) に必要で、ドキュメント セットのインデックスを検索するために使用されます。特定の期間に実行されるクエリは多くないため、同時使用は実際には問題になりません。