user_of_toster
@user_of_toster

В каких случаях Elastic уступает реляционным БД?

Использую постгрес для хранения, хочу подключить для выборок elasticsearch. Я понимаю, что надо самостоятельно проводить замеры, но вначале, пока данных нет, хочу спросить здесь.

Можно ли заменить все select запросы с реляционных дб на эластик? Есть ли случаи, когда поиск в реляционных бд оптимальнее, чем поиск в ES? Пример запросов:
select * from products where id = 1;
select * from products where price > 100;
select * from products join rating on ..... where score > 100;
select * from products join rating left join users .... where score > 100 and is_liked_by_user = true order by price
  • Вопрос задан
  • 284 просмотра
Решения вопроса 2
ky0
@ky0
Миллиардер, филантроп, патологический лгун
В каком смысле "когда поиск в реляционных бд оптимальнее, чем поиск в ES"? Если информация в РСУБД однородна, навешены правильные индексы и сама СУБД настроена корректно - поиск в ней как раз будет обычно быстрее.

Эластик используется отнюдь не в качестве "более быстрой" замены РСУБД. Возможно, скорость действительно будет выше в случае многопоточных выборок сразу с нескольких нод (хотя в постгресе можно реализовать примерно то же самое с помощью партиционирования/шардирования), но по ресурсам это будет существенно затратнее.
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега PHP
С подсказки ky0 сформулировался простой ответ на этот дурацкий вопрос.

Данные в эластике не берутся с неба. Всё что он индексирует, попадает в него через SQL запросы.
И если нам нужно искать по результату джойна, то нужно проиндексировать запрос с джойном.

Что означает, что если нам нужны данные, по которым в эластике не индекса, то в нормальном случае мы просто пишем этот запрос и получаем данные. А в варианте автора через спину автогеном - пишем новый запрос для эластика, чтобы он всосал в себя его результаты, а потом уже запрос к самому эластику.

В общем, эластик - это полнотекстовый и фасетный поиск.
СУБД - всё остальное.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
28 июл. 2021, в 12:48
500 руб./за проект
28 июл. 2021, в 12:25
50000 руб./за проект
28 июл. 2021, в 12:08
2000 руб./за проект