, по общему признанию, большая часть моего опыта работы с базой данных является реляционной. одним из принципов в этом пространстве является предотвращение перемещения данных по сети. это проявляется при использовании что-то вроде:будут ли запросы графства Гремлин всегда выполнять операции в собственном адресном пространстве?
select * from person order by last_name limit 10
, который предположительно будет порядок и ограничения в двигателе базы данных против используя что-то вроде:
select * from person
, а затем заказывать и принимать топ-10 на клиента, который может иметь катастрофические последствия, если есть записи миллиона человек.
так, с Gremlin (из Groovy), если я делаю что-то вроде:
g.V().has('@class', 'Person').order{println('!'); it.a.last_name <=> it.b.last_name}[0..9]
я видя !
печататься, поэтому я предполагаю, что это объединение всех Person
записи в адресное пространство моего клиента перед порядком и предельными шагами, которые не являются желаемым эффектом.
делать мои варианты обработки запросов полностью в базе данных движка становятся специфичными для продукта (например, для orient-db возможно отправить запрос в их вкусе SQL), или есть что-то о Гремлине, которого я не хватает?
благодаря @jbmusso, что имеет смысл. к сожалению, похоже, что версия ориентации, которую я использую ('2.2'), все еще находится на gremlin 2, которая пока не поддерживает этот синтаксис. я задаюсь вопросом, есть ли синтаксис в gremlin 2 для заказа, ограничения и смещения, который позволяет выполнять на стороне сервера ... это очень хороший e-mail, чтобы отправить как отдельный вопрос;) –