iBoxDB性能堪比MongoDB的NOSql数据库

  iBoxDB是一款高性能的NOSql数据库,其具备类SQL的一些特性,但的确是个NOSql数据库。高性能、无依赖、线程安 全、先天支持 Java 、.NET、Android、Mono、Unity3D、Xamarin、Nashorn、Linux、Windows Phone等平台、支持索引、事务、主键、零配置,内嵌或独立Server,用类SQL语局查询、支持Linq。官方有跟MongoDB的性能对比,基本 是高于MongoDB的。

官方网站:http://www.iboxdb.com/

下面我们就摘取官方网站的一些例子,方便大家进一步认识:

Examples

using(var box = db.Cube())
  {                            
     //select, insert, update, delete ...
     var result = box.Commit();
  }
常见对象的插入:
box.Bind("Member").Insert(
       new Member() {  
             ID=box.NewId(Member.IncTableID, 1) ,
             LoginName = "Andy",
             Password = Member.EncodePassowrd("123"),
             Tags = new string[]{ "Nice" , "Strong" }
        }
      );
Dynamic Object (document database)
game["GameType"] = "ACT";
  box.Bind("Product").Insert(game);
game.put("GameType", "ACT");
  box.bind("Table").insert(game);
Key Value Style Query
box.Bind("Table", 2L).Select<AClass>();
   //Composite Key
  box.Bind("Table2", 99, "ABC").Select<BClass>();
box.bind("Table", ID).select(Member.class);
  //Composite Key
  box.bind("Table2",8, "MyID").select(Product.class);
更诱人的是可以像这样来写查询:


//from TABLE where A>? & B<=? order by C limit 0,10
  box.Select<Member>("from Member where LoginName==?", "MyName");
//from [table] where [condition] 
  //                    order by [field1] desc,[field2] limit [0,10]
  //[Condition:] == != < <= > >= & | ( )
  //[IFunction:] =[F1,F2,F3]
  box.select(Member.class, "from Member where Name==?", "MyName");
支持自定义查询函数:


box.Select<Member>("from Member where [Tags]", new QueryArray("Value"));
可以配合linq来使用


from o in box.Select<Class>("from Class")
  where o.Text.Contains(text)
  select o;
.NET
bool
 char
 byte
 sbyte
 short 
 ushort
 int
 uint
 long
 ulong              
 float
 double        
 decimal
 DateTime
 Guid
         
 bool? 
 char? 
 byte? 
 sbyte? 
 short?
 ushort? 
 int? 
 uint? 
 long? 
 ulong?      
 float? 
 double? 
 decimal?
 DateTime?
 Guid? 
 string 
       
 //non-indexable
 Dictionary<string, object>
 MemoryStream
 bool[] 
 char[] 
 byte[]
 sbyte[] 
 short[]
 ushort[] 
 int[] 
 uint[] 
 long[]
 ulong[]
 float[]
 double[] 
 decimal[] 
 DateTime[] 
 Guid[]

在32bit系统上 PK MongoDB:

Results:
threadCount=100000 , batchCount=10
MongoDB(Default)
 Database Transaction Test: None
 Insert:1000000  AVG:10521 objects/s
 
iBoxDB(File Mode)
 Database Transaction Test: Succeeded
 Insert:1000000  AVG:17981 objects/s
 Update:1000000  AVG:12397 objects/s 
 Delete:1000000  AVG:22869 objects/s
            
iBoxDB(MemoryMappedFile Mode)
 Database Transaction Test: Succeeded
 Insert:1000000  AVG:38458 objects/s
 Update:1000000  AVG:20200 objects/s 
 Delete:1000000  AVG:33342 objects/s
 
iBoxDB(InMemory Mode)
 Database Transaction Test: Succeeded
 Insert:1000000  AVG:39132 objects/s
 Update:1000000  AVG:20226 objects/s 
 Delete:1000000  AVG:33658 objects/s
iBoxDB.NET 在64bit System
iBoxDB v1.5 mongodb-win32-x86_64-2008plus-2.4.5 MongoDB.Driver v1.8.2.34

MongoDB(Default)
 Database Transaction Test: None
 Insert:1,000,000  AVG: 32,702 objects/s
 
iBoxDB(File Mode)
 Database Transaction Test: Succeeded
 Insert:1,000,000  AVG:33,368 objects/s
 Update:1,000,000  AVG:16,939 objects/s 
 Delete:1,000,000  AVG:22,504 objects/s
 
iBoxDB(MemoryMappedFile Mode)
 Database Transaction Test: Succeeded
 Insert:1,000,000  AVG:42,236 objects/s
 Update:1,000,000  AVG:17,765 objects/s 
 Delete:1,000,000  AVG:23,147 objects/s
 
iBoxDB(InMemory Mode)
 Database Transaction Test: Succeeded
 Insert:1,000,000  AVG:47,382 objects/s
 Update:1,000,000  AVG:26,806 objects/s 
 Delete:1,000,000  AVG:35,092 objects/s
实现主从同步:

好了,先整理到这儿吧,感兴趣的朋友,可以去参照官网,动手试试。


转载于:https://my.oschina.net/lichaoqiang/blog/601792

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值