Почему Solr намного быстрее, чем Postgres?

Недавно я перешел с Postgres на Solr и заметил, что наши запросы увеличились примерно в 50 раз. Запросы, которые мы запускаем, охватывают несколько диапазонов, а наши данные — это списки транспортных средств. Например: «Найти все автомобили с пробегом < 50 000, 5 000 долларов < цена < 10 000 долларов, марка = Mazda…»

Я создал индексы для всех соответствующих столбцов в Postgres, так что это должно быть довольно честное сравнение. Глядя на план запроса в Postgres, хотя он по-прежнему использовал один индекс, а затем сканировал (я предполагаю, что он не мог использовать все разные индексы)

. Насколько я понимаю, Postgres и Solr используют смутно похожие структуры данных (B- деревья), и они оба кэшируют данные в памяти. Поэтому мне интересно, откуда такая большая разница в производительности.

Какие различия в архитектуре могут объяснить это?

63
задан jpountz 7 April 2012 в 11:32
поделиться