У меня низкая производительность при выполнении простого поиска (~ 20-30-х годов):HSQLDB эффективность поиска текста
select Text from Library where REGEXP_MATCHES(Text, '.*abc.*')
select Text from Library where Text LIKE '%abc%'
Вот описание моего стола:
- SELECT COUNT (*) из Библиотека = 1 628 062
- ВЫБРАТЬ AVG (ДЛИНА (текст)) из библиотеки = 766 символов
- Library.script файл 2.5GB
- Текст поле индексируется
- Я уже сделал SHUTDOWN COMPACT;
- библиотека является "в памяти" стол
Что-то, что не может быть нормальным:
- не имеют Library.data или .data файл для этой БД
У меня заканчиваются идеи о том, что делать, чтобы ускорить этот запрос.
Любое предложение?
Ни один из этих запросов не сможет использовать индекс (что также справедливо для почти всех других СУБД, за исключением Postgres). Но полное сканирование всего на 1,6 миллиона строк не должно занимать 30 секунд. Но я не думаю, что вы можете сделать что-то в HSQLDB для ускорения этих запросов. –