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