加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java – OrientDB慢写

发布时间:2020-12-14 16:47:26 所属栏目:Java 来源:网络整理
导读: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. 但是,执行以下代码可以
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正在使用二进制模式)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读