5.内存数据库之比较
上述内存数据库,首先由于License限制,排除了所有的商业数据库产品包括:
Alitibase
Oralce Berkelay DB
Oracle TimesTen
eXtrmeDB
还包括 Berkelay DB这样的开源,但限制商业使用的数据库。
所以比较的重点就是SQLite和H2
方面 | 具体要求 | 必要条件 | SQLite | H2 |
License | 是否收费 | | 免费使用 | 免费使用 |
是否开源 | | 开源 | 开源 |
是否有技术支持 | | 主要是社区支持,如果需要专业支持需要购买 | 主要是社区支持,如果需要专业支持需要购买 |
商业目的的分发版本是否仍要收费 | 是 | 免费 | 免费 |
其他 | | | |
性能 | 数据容量支持100000条以上记录 | 是 | 支持 | 支持 |
并发查询处理能力 | | SQLite在并发(包括多进程和多线程)读写方面的性能一直不太理想。数据库可能会被写操作独占,从而导致其它读写操作阻塞或出错。 | 并发性较好(在模拟器中有使用,支持50个并发查询没问题) |
查询速度 | 是 | | 数据量少的情况非常好 |
修改速度 | 是 | | |
平台支持 | 32/64位 | | 全部支持 | 全部支持(需java平台支持) |
Linux/window/UNIX/mobile | | 支持Linux/Mac OS/Windows | 全部支持(需java平台支持) |
运行方式支持 | 支持嵌入式 | | 支持 | 支持 |
支持独立运行 | | 不支持 | 支持 |
连接方式支持 | 支持ODBC | | 不支持 | 支持 |
支持JDBC | | 必须通过第三方的JDBC驱动 | 支持 |
支持内存访问 | | 通过c接口(专用API) | 通过JDBC,不支持API访问 |
支持网络访问 | | 不支持 | 支持 |
SQL支持 | 支持SQL | 是 | 支持 | 支持 |
支持Index,Trigger, Constrains,Views | | 支持,有资料说其不支持外键约束。 | 支持 |
管理界面 | 支持管理界面 | | 支持CLI | 支持Web界面的管理控制台 |
管理界面友好程度 | | 较差 | 较好 |