В принципе, нет.
Ключевое различие между чем-то вроде Couch и SQL DB заключается в том, что единственный способ делать запросы в CouchDB — это, по сути, представления/индексы. Индексы в SQL необязательны. Они существуют (в основном) для повышения производительности. Например, если у вас небольшая БД, ваше приложение будет нормально работать на SQL с 0 индексами. (Может быть проблема с уникальными ограничениями, но это деталь.)
Общий смысл заключается в том, что часть процессора запросов в базе данных SQL включает в себя другие методы доступа к данным, помимо простых индексов, в частности сканирование таблиц, объединение слиянием и т. д.
В Couch нет процессора запросов. У него есть представления (определяемые JS), используемые для определения индексов B-Tree.
И это все. Это молот Дивана. Это хороший молоток. Он существует в мире обработки данных уже почти 40 лет.
Создание индексов в Couch несколько дорого (в зависимости от объема данных), поэтому «временные представления» не одобряются. И они также требуют затрат на обслуживание, поэтому представления должны быть осознанным элементом дизайна вашей базы данных. В то же время они немного мощнее, чем обычные индексы SQL.
Вы можете легко добавить свою собственную обработку запросов поверх Couch, но это потребует от вас больше работы. Вы можете создать несколько представлений выбора по наиболее популярным или избранным критериям, а затем отфильтровать полученные документы по другим критериям в своем собственном коде. Да, вы должны это сделать, поэтому вы должны задаться вопросом, стоят ли затраченные усилия больше, чем те преимущества, которые, по вашему мнению, предлагает Couch (HTTP API, репликация, безопасное, всегда согласованное хранилище данных и т. д.) по сравнению с решением SQL.
person
Will Hartung
schedule
28.06.2011