`

昨晚(今天凌晨)测试了一下SimpleSQL数据库

阅读更多

        去年10月份就下载了一个SimpleSQL数据库在硬盘上,一直没有好好去摆弄摆弄,昨晚看到它,就想测测它的性能,于是就动手写点简单程序测了一下,立此存照一下。

      简单介绍一下SimpleSQL是何物。SimpleSQL(下面简称为SSQL)是一个JAVA开发的单文件关系数据库,可以嵌入使用,可以在内存中保持数据,也可以以C-S模式使用,还可以用作其他多个数据库的代理,这是SSQL比较有意思的特点。下面的图表示出了SSQL的几种工作方式:
SimpleSQL的几种工种模式

        从这些工作模式来看,SSQL与HSQL很象,但我感觉SSQL的语法、函数等更象Oracle,用这个数据库开发的应用,移到Orace上时迁移工作量可能会小一些。所以,在有些场合不妨可以试用一下这个数据库。下面是SSQL手册自己宣称的特性:
autocommit mode 
multiversion concurrency control
transactional mode
deadlock detection
transactional integrity    (unique constraints and references)

64-bit portable database file
theoretical limit of 8589934592 GB

subselects
distributed queries
outerjoins:  standard SQL92 JOIN command,  (+) outerjoin operator (与Oracle相似之处)    
heterogeneous queries
data migration queries    (比较独特的特点)
Web report formatting functions
它还支持诸如: CASE、DECODE等函数(学Oracle的 :-) )
其他详细的特性我就不罗列了,如果有兴趣大家可以自己找来玩玩。

下面简单讲一下昨晚我测试的结果。
我的测试案例设计是:
对一张表操作:
tbl_user
---------------------------------
id                        bigint
login_id            varchar(20)
password        varchar(50)
name                varchar(20)
email                varchar(200)
sign                  varchar(2000)
regtime            timestamp

用一个SQL语句往表里插入1000X1000记录:
Insert into tbl_user 
  values( NEXTVAL('tbl_user'), 'test'|| CURRVAL('tbl_user'), '720123', '张三'|| CURRVAL('tbl_user'),  CURRVAL('tbl_user') || '@yahoo.com', MD5('张三'|| CURRVAL('tbl_user')), NOW())
这个SQL语句中的NEXTVAL是Sequence函数,与Oracle的Sequence很类似,不同的只是这里的Sequence不需要手工建,只要我们有调用NEXTVAL('tbl_user'),就会自动生成一个名为“tbl_user”的sequence,用起来比Oracle方便一些。

用一个SQL语句从表里查询总记录数:
select count(id) as cnt from tbl_user

我的机器配置是:
DELL LATITUDE D610 
CPU:  迅驰1.8G
内存:   512M

在NetBeans5.5 Beta版中编写程序并以Run模式运行程序:

测试结果如下:
插入操作: 191分钟
查询操作(三次): 100秒
                                94秒
                                87秒 

从这个结果来看,我认为SSQL作为内嵌数据库发布一些DEMO应用或是用来作开发数据库,是能够胜任。

最后有一点比较遗憾的是SSQL的新版本移掉了其中一些作者认为不需要的特性(包括C-S工作方式、事务等),而这些特性可能是我们应用开发人員往往需要的,所以我们只能用它的早期版本。作者网站对移掉的一些特性声明如下:

  1. The second version of SimpleSQL has been renamed to JavuSQL.   
  2. This version is optimized for JavuServer.   
  3. The main purpose is now embedded SQL database component.   
  4. Most features not useful for JavuServer has been removed, including: client-server mode, heterogeneous queries, transactions, C++ compatibility.   
  5. Remover features could be added on request in the future.   
  6.   
  7. JavuSQL is now available as a part of JavuServer,   
  8. stand-alone version and source code (under LGPL) will be available soon.  

为了下次不至于找不到这个数据库的早期版本,我把我下的1.2.3版放上来。

 

 


 


 

  • 大小: 93.9 KB
分享到:
评论
11 楼 kris_xu 2006-12-01  
保重身体啊。
10 楼 wdmsyf 2006-11-23  
前两天以抽空测了一下HSQLDB的基本参数,测试结果如下:
我的测试案例设计是:
还是对一张表操作:
tbl_user 
---------------------------------
id              IDENTITY
login_id        varchar(20)
password        varchar(50)
name            varchar(20)
email           varchar(200)
regtime         timestamp

这次测试的表比SSQL测试时少了一个VARCHAR(2000)的字段,因为HSQLDB的Sequence用起来不如SSQL,所以就改用IDENTITY;表类型就建成cached,因为HSQLDB默认的表类型内存表(Memory),刚开始时我用默认的表类型,插入数据是很快,但在插入到150K左右的记录时就OutOfMemory了,测不下去,试了几次不行,所以我就把表类型改成缓存表(CACHED)。

用一个SQL语句往表里插入1000X1000记录:
Insert into tbl_user( login_id, password, name, email, regtime)
values( 'test' || IDENTITY() , '1234567', '张三' || IDENTITY(), 'test' || IDENTITY()|| '@yahoo.com', NOW())


用一个SQL语句从表里查询总记录数:
select count(id) as cnt from tbl_user

我的机器配置是:
DELL LATITUDE D610 
CPU:  迅驰1.8G
内存:   512M

在NetBeans5.5 Beta版中编写程序并以Run模式运行程序:

HSQLDB的版本是:1.8.0.7

测试结果如下:
插入操作:       393分钟  (SSQL是 191 min)
查询操作(三次): 19.39秒   (SSQL是 100 sec)
                  15.297秒 (SSQL是 94 sec)
                  15.203秒 (SSQL是 87 sec)
从比较结果来看,SSQL的插入性能优于HSQLDB,但查询性能比HSQLDB差太多(我想不明白是怎么回事,有没有哪位大拿知道原因给解释一下。),所以,我认为,SSQL和HSQLDB总体性能没有太大的差别,但鉴于SSQL的开发已经转向,而HSQLDB还在不断发展中,使用时选用HSQLDB比较稳妥。
9 楼 wdmsyf 2006-11-20  
自己顶一下,上面bigpanda说的
http://programics.com/?page=downloads&lang=en
可以下载SimpleSQL的所有组件。
8 楼 wdmsyf 2006-11-20  
complystill:

H2 Database Engine 我也有,找个时间也测一下。
7 楼 bigpanda 2006-11-20  
转了一圈发现可以看这个网页:http://programics.com/?page=simplesql&lang=en
6 楼 bigpanda 2006-11-20  
www.simplesql.org这个鬼网页怎么回事啊?什么都不工作。
5 楼 wdmsyf 2006-11-20  
问一下各位大拿,如何贴图啊?
4 楼 歆渊 2006-11-19  
H2 Database Engine 也不错, 性能和特性都比HSQL要好一些. 只是还没有大规模应用的那么深成熟性. 作者正在写MVCC内核, 因为是业余的稍微有点慢. 不过我在WoW的开发中用基本没有什么问题.

http://www.h2database.com
3 楼 daoger 2006-11-18  
图片都没有正常显示!
2 楼 wdmsyf 2006-11-18  
devworks:
这个图片看不清吗?
1 楼 devworks 2006-11-18  
请重新上传一下图片

相关推荐

    SimpleSQL unity 数据库插件

    对于初学游戏者的帮助比较大的,其中有单片机,ARM,数据结构,window编程,MFC编程,cocos2dx,unity3d自己编写的小游戏

    SimpleSQL 2.11 unity 数据库插件

    SimpleSQL helps you integrate database storage into your game or project. Create level map links, store player stats, keep inventory specs, and much more!

    SimpleSQL 2.11.0.unitypackage

    SimpleSQL helps you integrate database storage into your game or project. Create level map links, store player stats, keep inventory specs, and much more! Please note that SimpleSQL is a local ...

    SimpleSQL 2.13.0.zip

    SimpleSQL 2.13.0.unitypackage UnitySQL插件 直接用实体类存储

    SimpleSQL.txt

    https://assetstore.unity.com/packages/tools/integration/simplesql-3845 unity资源商店最新版本,真2.8.0版本,需要的可放心下载。

    SimpleSQL 2.11.1.unitypackage

    SimpleSQL helps you integrate database storage into your game or project. Create level map links, store player stats, keep inventory specs, and much more! Please note that SimpleSQL is a local ...

    SimpleSQL.unitypackage

    SimpleSQL.unitypackage 客户端简易SQL,方便存储数据

    用VS2008自带SQL数据库服务器创建SQL数据库软件

    用VS2008自带SQL数据库服务器创建SQL数据库软件

    go-simplesql

    go语言关系数据库简单的工具。减少代码中出现sql语句的频率

    Unity SimpleSQL_v2.11.1

    Unity SimpleSQL_v2.11.1 是Unity简单的本地数据持久化功能,可用在Android、iOS、win、Mac 设备上运行

    SimpleSQL 2.8.0.unitypackage

    https://assetstore.unity.com/packages/tools/integration/simplesql-3845 unity资源商店最新版本,真2.8.0版本,需要的可放心下载。

    SimpleSQL v2.16.0

    simpleSQL可将数据库存储集成到您的游戏或项目中。创建水平地图链接,存储球员的统计资料,保持库存规格,以及更多! 请注意,simpleSQL是本地数据库解决方案,不能连接到服务器数据库 将SQLite数据库附加到场景中的...

    【Unity-插件】SimpleSQL 2.13.0.unitypackage

    SimpleSQL 2.13.0.unitypackage UnitySQL插件 直接用实体类存储

    SimpleSQL2.11

    untiy中使用sqlite数据库,供学习使用,商用请务必支持正版!

    SimpleSQL v2.16.1.unitypackage

    找到SimpleSQL 可帮助您将数据库存储集成到您的游戏或项目中。创建关卡地图链接、存储玩家统计数据、保存库存规格等等! 请注意,SimpleSQL 是一个本地数据库解决方案,无法连接到服务器数据库 将 SQLite 数据库...

    SimpleSQL v2.16.1

    SimpleSQL v2.16.1 -将SQLite数据库附加到场景中的管理器 -无需为移动设备移动文件! -使用可定制的类或编写自己的SQL语句,简单高效地访问数据 -使用ORM结构或简单的表格存储数据 -可以选择使用。NET系统。数据库 -...

    C# simpleDB数据库操作类

    关于数据库操作的第三方...今天试着封装了一个数据库操作类,都是些基本的操作,起什么名字好呢?功能简单,简单的就是最好的,故起名曰"SimpleDB". 官方下载: http://www.soft000.com/SetupDownLoad.aspx?id=simpledb

    SimpleSQL 1.8.0

    一款unity3d引擎使用的数据库,非常方便,有现成的案例。最新版本,对应本地要进行增删改查等需求的项目非常实用。

    SQL-simple.rar_simple sql

    SQL入门教程,很容易看懂。介绍了如何用SqlServer创建数据库、创建表,还有对数据的增删改查等操作

    SimpleSQL-开源

    SimpleSQL是一个64位关系数据库,用作独立的不依赖服务器的数据库。 组件和事务数据库。 具有标准SQL和JDBC的服务器具有可移植的单个db。 文件,第一个数据库。 在Java和C ++中可用。

Global site tag (gtag.js) - Google Analytics