在 RethinkDB 中,是否可以一次创建多个索引?
类似的东西(不起作用):
r.db('test').table('user').indexCreate('name').indexCreate('email').run(conn, callback)
在 RethinkDB 中,是否可以一次创建多个索引?
类似的东西(不起作用):
r.db('test').table('user').indexCreate('name').indexCreate('email').run(conn, callback)
索引创建是一项相当重量级的操作,因为它需要扫描现有文档以使索引保持最新。理论上可以允许同时创建 2 个索引,这样它们就可以并行执行此过程并将工作减半我们现在不支持这一点。
但是我怀疑这不是你要问的。如果您只是在寻找一种不必等待索引完成然后返回并开始下一个索引的方法,那么最好的方法是:
table.index_create("foo").run(noreply=True)
# returns immediately
table.index_create("bar").run(noreply=True)
# returns immediately
您还可以随时在单个查询中执行任意数量的写入,方法是将它们放在一个数组中,如下所示:
r.expr([table.index_create("foo"), table.index_create("bar")]).run()
我实际上无法想到为什么这对创建索引很有用,因为索引写入在索引准备好之前不会阻塞,但是谁知道呢。它在创建表时绝对有用。