Arangodb 写入速度差
我正在arangoDB上做一些测试,在使用web UI时,我想测试500000个文档的插入速度 我在web UI中使用了这个查询,代码是 在我的机器上大约需要9秒钟。但是,当我使用Python Arango驱动程序时,每1000次插入大约需要1.9秒Arangodb 写入速度差,arangodb,Arangodb,我正在arangoDB上做一些测试,在使用web UI时,我想测试500000个文档的插入速度 我在web UI中使用了这个查询,代码是 在我的机器上大约需要9秒钟。但是,当我使用Python Arango驱动程序时,每1000次插入大约需要1.9秒 是否有人对python驱动程序足够熟悉,可以详细说明原因?您正在做不同的事情。用户界面中的查询或多或少只向服务器发出一个http请求。在循环中运行insert时,对每个项目都执行http请求。如果您不想使用AQL,那么您仍然可以在一个请求中发送多个
是否有人对python驱动程序足够熟悉,可以详细说明原因?您正在做不同的事情。用户界面中的查询或多或少只向服务器发出一个http请求。在循环中运行insert时,对每个项目都执行http请求。如果您不想使用AQL,那么您仍然可以在一个请求中发送多个文档。要了解更多信息,请查看以下代码:
( () => {
const internal = require("internal")
const db = internal.db
const time = internal.time
const print = internal.print
let start_time = undefined
let col = undefined
const col_name = "users"
// one http request
print("aql insert")
db._drop(col_name)
col = db._create(col_name)
start_time = time()
db._query(`
FOR x IN 1..50
FOR i IN 1..1000 INSERT
{'name': 'hello' ,'age': i }
INTO ${col_name}
`)
print(time() - start_time)
// one request for every document
print("rest insert")
db._drop(col_name)
col = db._create(col_name)
start_time = time()
for(var x = 1; x <= 50; x++) {
for (var i = 1; i <= 1000; i++) {
col.insert({ name: 'hello', age: i})
}
}
print(time() - start_time)
// 50 http requests
print("rest batched insert")
db._drop(col_name)
col = db._create(col_name)
start_time = time()
let batch = []
for (var i = 1; i <= 1000; i++) {
batch.push({ name: 'hello', age: i})
}
for (var x = 1; x <= 50; x++) {
col.insert(batch)
}
print(time() - start_time)
})()
( () => {
const internal = require("internal")
const db = internal.db
const time = internal.time
const print = internal.print
let start_time = undefined
let col = undefined
const col_name = "users"
// one http request
print("aql insert")
db._drop(col_name)
col = db._create(col_name)
start_time = time()
db._query(`
FOR x IN 1..50
FOR i IN 1..1000 INSERT
{'name': 'hello' ,'age': i }
INTO ${col_name}
`)
print(time() - start_time)
// one request for every document
print("rest insert")
db._drop(col_name)
col = db._create(col_name)
start_time = time()
for(var x = 1; x <= 50; x++) {
for (var i = 1; i <= 1000; i++) {
col.insert({ name: 'hello', age: i})
}
}
print(time() - start_time)
// 50 http requests
print("rest batched insert")
db._drop(col_name)
col = db._create(col_name)
start_time = time()
let batch = []
for (var i = 1; i <= 1000; i++) {
batch.push({ name: 'hello', age: i})
}
for (var x = 1; x <= 50; x++) {
col.insert(batch)
}
print(time() - start_time)
})()
127.0.0.1:8529@_system> require("internal").load("/home/ulf/insert-example.js")
aql insert
3.2375659942626953
rest insert
13.451776504516602
rest batched insert
3.7614316940307617