mirror of https://github.com/mongodb/mongo
61 lines
1.3 KiB
JavaScript
61 lines
1.3 KiB
JavaScript
if (1) {
|
|
t = db.compactspeedtest;
|
|
t.drop();
|
|
|
|
var obj = {
|
|
x: 1,
|
|
y: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
|
|
z: [1, 2]
|
|
};
|
|
|
|
var start = new Date();
|
|
function timed() {
|
|
db.getLastError();
|
|
var dt = (new Date()) - start;
|
|
// print("time: " + dt);
|
|
start = new Date();
|
|
return dt;
|
|
}
|
|
|
|
// print("adding data");
|
|
var N = 100000;
|
|
if (db.adminCommand("buildInfo").debug)
|
|
N = 10000;
|
|
for (var i = 0; i < N; i++) {
|
|
obj.x = i;
|
|
obj.z[1] = i;
|
|
t.insert(obj);
|
|
}
|
|
var a = timed();
|
|
|
|
// print("index");
|
|
t.ensureIndex({x: 1});
|
|
// print("index");
|
|
t.ensureIndex({y: 1});
|
|
// print("index");
|
|
t.ensureIndex({z: 1});
|
|
|
|
a += timed();
|
|
|
|
// print("count:" + t.count());
|
|
|
|
timed();
|
|
|
|
{
|
|
// print("compact");
|
|
var res = db.runCommand({compact: 'compactspeedtest', dev: true});
|
|
b = timed();
|
|
// printjson(res);
|
|
assert(res.ok);
|
|
|
|
// print("validate");
|
|
var v = t.validate({full: true});
|
|
|
|
assert(v.ok);
|
|
assert(t.getIndexes().length == 4);
|
|
print("inserting records and adding indexes took " + a);
|
|
print("compact took " + b);
|
|
assert(b < a, "compact was slower than it should be");
|
|
}
|
|
}
|