微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – OrientDB慢写

OrientDB官方网站说:

On common hardware stores up to 150.000 documents per second,10
billions of documents per day. Big Graphs are loaded in few
milliseconds without executing costly JOIN such as the Relational
DBMSs.

但是,执行以下代码可以显示:插入150000个简单文档需要17000ms.

import com.orientechnologies.orient.core.db.document.ODatabaseDocumentTx;
import com.orientechnologies.orient.core.record.impl.odocument;

public final class OrientDBTrial {

    public static void main(String[] args) {
        ODatabaseDocumentTx db = new ODatabaseDocumentTx("remote:localhost/foo");
        try {
            db.open("admin","admin");

            long a = System.currentTimeMillis();
            for (int i = 1; i < 150000; ++i) {
                final odocument foo = new odocument("Foo");
                foo.field("code",i);
                foo.save();
            }
            long b = System.currentTimeMillis();
            System.out.println(b - a + "ms");

            for (odocument doc : db.browseClass("Foo")) {
                doc.delete();
            }
        } finally {
            db.close();
        }
    }

}

我的硬件:

> Dell Optiplex 780
> Intel(R)Core(TM)2 Duo cpu E7500 @ 2.93Ghz
> 8GB RAM
> Windows 7 64位

我究竟做错了什么?

在10个并发线程中分割保存以最大限度地减少Java的开销,使其运行在大约13000ms.仍然远远低于OrientDB首页所说的.

解决方法

您可以使用“Flat Database”和orientdb作为java中的嵌入式库来实现
看到更多在这里解释
http://code.google.com/p/orient/wiki/JavaAPI

您使用的是服务器模式,并向orientdb服务器发送许多请求,根据您的基准判断,您每秒可以获得〜10 000个插入,这不错,例如,我认为10 000个请求对于任何网络服务器都是非常好的性能(和orientdb服务器实际上是一个webserver,你可以通过http来查询它,但我认为java正在使用二进制模式)

原文地址:https://www.jb51.cc/java/124274.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐