给定一个包含一个 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 应用程序(文档浏览器),它将用于搜索文档集的索引。在给定的时间段内不会有很多查询运行,因此并发使用并不是真正的问题。