分享

单机数据库性能测试总结

 dinghj 2014-12-08

 当前单机数据库(文件型数据库)有很多,为了选择更好的数据库,以便以后使用,在这主要对以下数据库进了插入、查询的速度进行测试,以及数据库的管理方式进行详细说明。数据库分别为:SQLLite、FireBird、Derby、HSql、PostgreSQL、JavaDB H2等。

1、sqlite 

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

驱动包:sqlitejdbc-v056.jar

驱动包的版本要正确,一开始我用sqlite-jdbc-3.6.0.jar导致hibernate在大批量插入时会中断。

Hibernate 连接配置:

hibernate.dialect sqlDialect.SQLiteDialect

hibernate.connection.driver_class org.sqlite.JDBC

hibernate.connection.username 

hibernate.connection.password 

hibernate.connection.url jdbc:sqlite:d:/sqlite/test50w.db

其中sqlDialect.SQLiteDialect是自己编写的一个继承 org.hibernate.dialect.Dialect的java类。

连接完后系统会在url的路径下创建指定数据库名的数据库。

管理工具:下载sqliteadmin.zip包解压后执行sqliteadmin.exe.

特点:不支持存储过程,不支持外键,多进程可以同时打开同一个数据库,也可以同时 SELECT ,但只有一个进程可以立即改数据库,like查询的方式查较慢。

优点:占用空间少,打开数据库速度快,SQLite不支持存储过程,不支持外键,多进程可以同时打开同一个数据库,也可以同时 SELECT 

缺点:查询速度一般,只有一个进程可以立即改数据库

2、Firebired

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

驱动包:jaybird-2.1.6.jarjaybird-full-2.1.6.jarjaybird-pool-2.1.6.jar

Hibernate连接配置:

hibernate.dialect org.hibernate.dialect.FirebirdDialectw

hibernate.connection.driver_class org.firebirdsql.jdbc.FBDriver

hibernate.connection.username sysdba

hibernate.connection.password masterkey

hibernate.connection.url jdbc:firebirdsql:localhost:d:/firebird/TEST100W.fdb

数据库的管理工具:

(1)Firebird isql tool:下载fodesk.rar解压后安装,运行该工具,在命令行输入:create database 数据库名 user 'sysdba' passwrod 'masterkey'.如下图所示:

数据库名扩展名.fdb要输入,用户名和密码必须用单引号。

完成后在路径下新增了一个扩展名为.fdb的数据库文件。

2FlameRobin界面管理工具

下载flamerobin-0.8.3-setup.exe安装后软件界面。

特点:文件占用空间少,插入记录时间较慢,支持多线程的读写。

优点:占用空间少,支持多线程的读写

缺点:无事务插入速度慢,建立索引后查询速度慢

3、Derby

官方网站:http://db./derby/

驱动包:derby.jar

Hibernate连接配置:

hibernate.dialect org.hibernate.dialect.DerbyDialect

hibernate.connection.driver_class org.apache.derby.jdbcEmbeddedDriver

hibernate.connection.username 

hibernate.connection.password 

hibernate.connection.url jdbc:derby:d:/derby/testsize50w;create=true

连接完后系统会在url的路径下创建指定数据库名的数据库,数据库存在后可以将配置中的create=true去掉。

数据库以文件的形式存在,如testsize50w数据库,以testsize50w为文件夹,下有:

数据库管理工具:IJ管理工具

解压db-derby-10.5.3.0-bin.zip后在db-derby-10.5.3.0-bin/db-derby-10.5.3.0-bin/bin下可以找到ij.bat文件。运行既可,数据库的连接命令:connect  'jdbc:derby:d:/derby/testsize50w';

也可以安装eclipse插件,在eclipse开发时可以管理数据库,安装插件包:derby_core_plugin_10.5.3.zip

数据库特点:插入记录较慢,查询速度一般。不支持多线程的读写。

优点:查前面几页时速度快

缺点:占用空间大,无事务插入时速度慢,有事务插入时也慢,不支持多线程的读写

4、HSql

官方网站:http:///

它有五种模式:Hsqldb ServerHsqldb Web ServerHsqldb ServletIn-Process(Standalone)模式Memory-Only 数据库本文主要采用In-Process(Standalone)模式

驱动包: hsqldb.Jar

驱动包在hsqldb-2.0.0-rc9.zip解压后hsqldb-2.0.0-rc9/hsqldb/lib,驱动包的版本要正确,一开始我用1.8版本的包,导致hibernate用独占(file)连接时无法连接上。

Hibernate连接配置:

hibernate.dialect org.hibernate.dialect.HSQLDialect

hibernate.connection.driver_class org.hsqldb.jdbcDriver

hibernate.connection.username sa

hibernate.connection.password 

hibernate.connection.url  jdbc:hsqldb:file:d:/hsql/test100w/test100w;ifexits=true

其中ifexits=true可以不写

管理工具类:

· org.hsqldb.util.DatabaseManager

· org.hsqldb.util.DatabaseManagerSwing

· org.hsqldb.util.Transfer

· org.hsqldb.util.QueryTool

· org.hsqldb.util.SqlTool

创建数据库:在指定的路径中新建一个数据库文件夹(test),将hsqldb.jar放在该文件夹下。并添加一个runcreate.bat文件,内容为:

java -cp hsqldb.jar org.hsqldb.server.Server -database test

运行后会创建一个数据库testhsqldb,数据库文件包括:

· test.properties

· test.script

· test.log

· test.data

· test.backup

图形管理工具:在文件夹test下添加runmanager.bat文件。内容为:

java -Xms512m -Xmx512m -cp ../hsqldb.jar org.hsqldb.util.DatabaseManager

其中当数据库大时需要添加-Xms512m -Xmx512m参数,否则可以不要。 运行该文件:

输入连接信息后,单击OK完成连接。

特点:占用空间小,查询速度快,但是超过10几万条记录时打开数据库非常慢,而且简直无法插入,占用的内存暴涨,需要调高内存后才能进行操作。插入速度快。不支持多线程的读写

优点:无事务插入时速度快,有事务插入时速度快,无索引查询速度快,建立索引后查询速度快like中文查询快

缺点:打开数据库速度慢,较耗内存。不支持多线程的读写

5、PostgreSQL

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

驱动名:postgresql-8.4-701.jdbc3.jar

Hibernate 连接配置

hibernate.dialect org.hibernate.dialect.PostgreSQLDialect

hibernate.connection.driver_class org.postgresql.Driver

hibernate.connection.username postgres

hibernate.connection.password postgresql

hibernate.connection.url jdbc:postgresql://localhost:5432/test5w?charSet=UTF-8

数据的管理工具:

它必须安装数据库软件,解压postgresql-8.4.3-1-windows.zip包后执行postgresql-8.4.3-1-windows.exe安装数据库软件。

创建新的数据库,每个数据库对应一个Id,存放在:postgresql安装目录下的PostgreSQL/8.4/data/base下。以各自的id为文件夹,下包括它的数据文件。

应用程序在连接数据库时,数据库服务必须先启动。

特点:要先安装数据库服务器,数据库较在。支持多线程的读写,用like的方式查比较慢

6、javaDb

官方网站:http://developers./javadb/

新安装了 JDK 6 的程序员们也许会发现,除了传统的 binjre 等目录,JDK 6 新增了一个名为 db 的目录。这便是 Java 6 的新成员:Java DB。这是一个纯 Java 实现、开源的数据库管理系统(DBMS),源于 Apache 软件基金会(ASF)名下的项目 Derby

驱动包:jdk1.6/db/lib/derby.jar

Hibernate连接配置:与derby一样

数据库管理工具与derby一样

优点:数据库安装方便

缺点:占用空间大,分页查询时速度较慢,不支持多线程的读写

7、H2

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

驱动包:h2-1.2.135.jar

Hibernate连接配置:

hibernate.dialect org.hibernate.dialect.H2Dialect

hibernate.connection.driver_class org.h2.Driver

hibernate.connection.username sa

hibernate.connection.password 

hibernate.connection.url jdbc:h2:d:/h2/test100w/testh2

连接完后系统会在url的路径下创建指定数据库名的数据库。

数据库管理工具:安装h2-setup-2010-05-08.exe

界面如下:

   设置完成后单击connect即可.

特点:不支持多线程,数据插入快。索引后查询速度快 

优点:建立索引后查询速度快

缺点:关闭数据库慢,无索引查询速度慢,数据量大时like中文查询慢,不支持多线程

以上是用hibernate的连接,jdbc的连接相似,驱动和URL都一样。

 

测试结果如下:

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多