HSQLDB文本搜索性能

时间:2016-06-10 02:59:59

标签: sql performance hsqldb

我在运行简单搜索时表现不佳(~20-30s):

select Text from Library where REGEXP_MATCHES(Text, '.*abc.*')
select Text from Library where Text LIKE '%abc%'

以下是我的表格的描述:

  • 来自图书馆的SELECT count(*)= 1 628 062
  • 从库中选择AVG(LENGTH(文本))= 766个字符
  • Library.script文件是2.5GB
  • 文本字段已编入索引
  • 我已经完成了SHUTDOWN COMPACT;
  • 图书馆是记忆中的""表

可能不正常的事情:

  • 我没有此DB的Library.data或.data文件

我对如何更快地进行此类查询感到失望。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

以最简单的形式编写查询。

select text from library where position('abc' in text) > 0

我检查过,这需要大约150万行(但平均长度更短)。它应该比你尝试过的少。