оптимизация поиска для сокращения времени поиска

#java #database #oracle #search #optimization

#java #База данных #Oracle #Поиск #оптимизация

Вопрос:

на моем веб-сайте есть функция поиска, пользователь может искать тему форума по типичному слову. Я использую базу данных Oracle для хранения темы. В самом начале у нас есть только 200G данных, теперь у нас 20T, пользователи жалуются, что им приходится слишком долго ждать, чтобы получить обратную связь. Мы уже оптимизировали функцию поиска в базе данных и не ожидаем выжимания каких-либо соков из oracle. Но КАК? Что я могу сделать сейчас?

Комментарии:

1. Как вы оптимизировали БД? Я предполагаю, что вы ищете слово, встречающееся в любом месте поля базы данных? Как вам удалось избежать сканирования всей таблицы?

2. это полнотекстовый поиск?

3. что это за запрос?

4. не уверен, что это то, что вы уже исследовали / использовали. но вы можете захотеть взглянуть на это: docs.oracle.com/cd/B28359_01/text.111/b28303 /…

5. Невозможно сказать, как оптимизировать БД или даже одно утверждение, ничего не зная об этой БД. Вы должны определить инструкцию для оптимизации и опубликовать ее здесь, включая полную структуру всех задействованных таблиц, их количество строк и фактическое поведение.

Ответ №1:

Возможно, вам следует использовать какой-либо механизм индексации, используемый только для задачи поиска: ElasticSearch, Lucene, Solr, …

Ответ №2:

Таким образом, у вас на 100 больше данных, чем при запуске.

Может быть, вам нужно обновление оборудования?

Комментарии:

1. обновление оборудования — это вариант, но это не будет хорошим решением, потому что это эффективность за очень короткое время.