对 PHP程序员来说,SQLite可以快速的搭建数据库开发环境,提供轻松、自容器、无配置、无独立服务的数据库环境,所有数据保存在一个文件里。当使用 MySQL 作为最终生产平台时,SQLite 是不可替代的开发环境解决方案。但真的没有其他兼容性更好的选择了吗?好吧,仅举几个原因:MySQL的兼容性和支持哈希索引,还不止这些!
当我们寻找 SQLite 的替代方案时,有两个可选,分别是 H2 和 MySQL Embeded 版本。下面重点介绍一下SQLite与H2的性能对比结果,希望对大家有所帮助。
轻量级数据库SQLite与H2性能比较:
查询性能
:查询一条记录 SQLite的性能要优于H2。查询(5000或10000)条 H2的性能要好于SQLite。
插入性能
:性能差不多快,SQLite略快。
更新性能
:更新一条记录 SQLite的性能好于H2。更新多条记录(有索引),SQLite【0.04s】的性能要好于H2【0.18s】
删除性能
:删除一条记录.SQLite【非常小】的性能略好于H2【非常小】。删除多条记录,SQLite【0.078s】好于H2的【0.12s】
启动时间
:都比较快
并发性能
:H2的查询支持一定的并发性,要强于SQLite。更新和插入,基本上都没有并发可言。
总的看来,SQLite的性能要好于H2,但并发性不如。另外SQLite一般使用C的API接口访问,而H2支持JDBC。并且都可以大多数主流平台上对于C\C++\C#应用而言,使用SQLite是更好的选择。对于Java应用,H2是不错的选择。
奇怪的两点:
1.在无索引查询单条数据,SQLite的性能【0.375s】要比H2【6.9s】要快非常多。(原因发现是H2使用Big Long效率差了好多,比起Int)
2.在无索引查询多条数据,SQLite的性能甚至比有索引时还好快一些,而有索引情况下H2查询多条数据也好于SQLite。
通过上文中的介绍,相信大家现在对于SQLite和H2内存数据库这两种内存数据库已经有了很好的了解,这样就便于大家以后子啊工作中使用SQLite和H2内存数据库。
H2数据库的使用:
http://www.h2database.com/
SQLite数据库教程(菜鸟教程):
https://www.runoob.com/sqlite/sqlite-tutorial.html
对 PHP程序员来说,
SQLite
可以快速的搭建
数据库
开发环境,提供轻松、自容器、无配置、无独立服务的
数据库
环境,所有数据保存在一对 PHP程序员来说,
SQLite
可以快速的搭建
数据库
开发环境,提供轻松、自容器、无配置、无独立服务的
数据库
环境,所有数据保存在一个文件里。当使用 MySQL 作为最终生产平台时,
SQLite
是不可替代的开发环境解决方案。但真的没有其他兼容性更好的选择了吗?好吧,仅举...
对 PHP程序员来说,
SQLite
可以快速的搭建
数据库
开发环境,提供轻松、自容器、无配置、无独立服务的
数据库
环境,所有数据保存在一对 PHP程序员来说,
SQLite
可以快速的搭建
数据库
开发环境,提供轻松、自容器、无配置、无独立服务的
数据库
环境,所有数据保存在一个文件里。当使用MySQL 作为最终生产平台时,
SQLite
是不可替代的开发环境解决方案。但真的没有其他兼容性更好的选择了吗?好吧,仅举...
内存
数据库
,顾名思义就是将数据放在内存中直接操作的
数据库
。相对于磁盘,内存的数据读写速度要高出几个数量级,将数据保存在内存中相比从磁盘上访问能够极大地提高应用的性能。
2013云计算架构师峰会课程资料下载
const db = new better .
Database
( ":memory:" ) ;
const db = new better .
Database
( ) ;
从本地存储
const db = new better .
Database
( "./path/to/
database
.db" ) ;
let db = new better .
Database
( "./users/premium.db" ) ;
Data = {
H2
和
SQLite
都是
轻量级
的关系型
数据库
,它们都具有以下特点:无需安装,可以直接使用,非常轻便。支持多种操作系统。数据存储在单个文件中,便于备份和迁移。以下是
H2
和
SQLite
的
比较
:性能
SQLite
的性能比
H2
更好,因为它采用了C语言编写的底层代码,而
H2
使用Java编写的底层代码。因此,在大量数据的情况下,
SQLite
的性能更高。
数据库
大小
H2
的
数据库
文件比
SQLite
的文件稍大,因为H...
To me it looks like
H2
database
is the easiest to manage. It requires no server and everything is put neatly in one file, which makesback-uppingand sharing
database
s among developers easier. It even...
当前单机
数据库
(文件型
数据库
)有很多,为了选择更好的
数据库
,以便以后使用,在这主要对以下
数据库
进了插入、查询的速度进行测试,以及
数据库
的管理方式进行详细说明。
数据库
分别为:SQLLite、FireBird、Derby、HSql、PostgreSQL、JavaDB 、
H2
等。1、
sqlite
官方网站:http://www.
sqlite
.org/驱动包:
sqlite
jdbc-v056.
性能和限制
SQLite
是一个很快的
数据库
,但"快"这个词本身是一个主观的和模糊不清的词。坦白地讲,对于有些事情,
SQLite
比其他
数据库
做得快,也有些事情比不上其他
数据库
。利用
SQLite
提供的配置参数,
SQLite
是足够快速和高效的。与大多数
数据库
一样,
SQLite
使用B-tree做索引,使用B+-tree处理表。因此,在对单表进行查询时,平均而言,
SQLite
与其他
数据库
一样快(至少不
内置的
数据库
H2
,可以让我们在无依赖
数据库
的情况下,做集成测试。比如我们想测试添加一个学生到
数据库
,就需要启动一台
数据库
来验证结果。然而使用
H2
内置
数据库
的话,就可以在无依赖
数据库
的情况下,进行验证。
数据库
H2
是内存级的,如果有大量集成测试(IT:Integration Test)的话,可以缩短测试时间。Embedded Redis同上,使我们在无依赖Redis的情况下,做测试。
工作中遇到一个异常,程序使用了两种
数据库
,
H2
和
SQLite
,在某些环境下会偶然出现DriverManager使用
SQLite
的库加载
H2
的
数据库
,然后抛出异常:
15:48:46 | java.sql.SQLException: invalid
database
address: jdbc:
h2
:../../etc/server
15:48:46 | at org.
sqlite
.J...
H2
Console 是
H2
数据库
的网页版管理界面,提供简单、直观的操作界面,允许用户方便地进行
数据库
管理和SQL执行,极大地提升了开发和测试的效率。
H2
数据库
凭借其便捷性和简洁性在开发、测试和嵌入式应用中表现卓越。虽然在某些方面与其他
数据库
相比有所不足,但其简单快捷的特性,使得
H2
在特定场景下成为优秀的选择。@Data@Entity@Id通过Spring Boot和Spring Data JPA,Java开发者可以更加高效且优雅地集成和使用
H2
数据库
。
由于国内
H2
嵌入式
数据库
并不是主流
数据库
,因此相关生态资源文件都
比较
少,并且很多都是断断续续的,针对此类问题笔者特意去官网整理相关配置文件及说明并进行梳理,方便大家开发时使用。
H2
数据库
配置及相关使用方式一站式介绍(极为详细并整理官方文档)
FEDERATED
每种类型都有其优劣势。关键需要理解每种存储引擎特性并选择最适合一种创建表以提升
数据库
性能。下面简要介绍每种存储引擎及其特性,让你能够决定什么场景选择哪种类型引擎。
1.1 MyISAM
MyISAM 扩展之前的 ISAM 存储引擎。M
案例描述:通过iostat发现存储的写性能长期维持在10MB左右,而且因为写性能差已经导致
数据库
性能变差;两个小时以后,iostat发现系统的写性能已经能够到100MB以上,
数据库
性能也恢复正常。也就是说,在对系统、
数据库
监控中,出现了性能波谷,存储写入性能严重抖动,为什么?一、原理过程 由上原理图,进行过程解析:1、事务提交,修改buffer_pool中的数据形成脏页,并且同时生成redo日志,...