Оптимальная система баз данных для фильтров

Я строю веб-сайт, который реализует фильтры, которые могут быть применены к набору данных. Позвольте мне объяснить эти фильтры. В этом случае это будет сайт с домами.

Number of rooms:
    2 or less ( 2271 )
    3 or more ( 4283 )
    4 or more ( 2223 )
    5 or more ( 1213 )

Price range
    More then {fill in number}
    Less then {fill in number}

Type
    For sale ( 2938 )
    For rent ( 1029 )

Вы видите это чаще в эти дни. Всего будет около 7 фильтров.

Теперь я не уверен, какую базу данных мне следует использовать. Будет около 10000 объектов и ежедневных изменений (около 1% от набора данных). Два, которые я рассматриваю, являются:

MongoDB объектно-ориентированный

Прежде всего, я новичок в этих, так называемых, объектно-ориентированных базах данных. Но я слышал несколько хороших историй о них. Они схемы меньше и, вероятно, очень быстро на работе.

MySQL реляционная база данных

Я использовал MySQL раньше, в таких ситуациях производительность была приемлемой. Я использовал EAV-модель, которая делает базу данных более динамичной. Я использовал движок InnoDB с отношениями для поддержания целостности.

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

Что вы думаете о производительности в этой ситуации, что DBMS будет работать лучше?

2 ответа

Решение

Вы можете использовать либо.
если вы используете денормализованную таблицу в mysql (то есть без соединений), она похожа на объект в mongoDB, но сложнее для запроса.
Так что, если ваши данные могут быть ненормализованы разумным способом, используйте Mongo иначе, RDBMS.

С 10 000 записей производительность должна быть достойной в MySQL. Поскольку вы уже знакомы с MySQL, я рекомендую вам это использовать. Ты можешь попробовать GROUP BY ... WITH ROLLUP как описано здесь, чтобы получить работу только с одним запросом. MySQL, так же как и вашему клиенту, потребуется проделать дополнительную работу, но я думаю, что это будет компенсировано сокращением количества запросов.

Другие вопросы по тегам