Недавно я переключился с Postgres на Solr и увидел в наших запросах ~ 50 раз. Запросы, которые мы запускаем, включают несколько диапазонов, а наши данные - списки транспортных средств. Например: "Найти все транспортные средства с пробегом < 50,000, $5000 < цена < 10 000 $, make = Mazda..."
Я создал индексы во всех соответствующих столбцах в Postgres, поэтому это должно быть довольно справедливое сравнение. Глядя на план запроса в Postgres, хотя он все еще просто использовал один индекс и затем сканировал (я предполагаю, потому что он не мог использовать все разные индексы).
Как я понимаю, Postgres и Solr используют смутно похожие структуры данных (B-деревья), и оба они кэшируют данные в памяти. Поэтому мне интересно, откуда такое большое различие в производительности.
Какие отличия в архитектуре объяснят это?