• H2:开源内存数据库引擎


    H2是一个开源的内存数据库。Java编写、快速、小巧(1.5MB jar包)还提供了Web控制台管理数据库内容。

    h2

    主要功能

    • 非常快速的数据库引擎。
    • 开源。
    • Java编写。
    • 支持标准SQL、JDBC API。
    • 支持嵌入式模式、服务器模式和集群。
    • 强大的安全功能。
    • 支持PostgreSQL的ODBC驱动。
    • 多版本并发。

    附加功能

    • 支持基于硬盘或内存数据库和表、只读数据库、临时表。
    • 支持事务(read committed),两步提交机制(2-phase-commit)。
    • 多个连接,表级锁。
    • 基于成本的优化、复杂查询采用遗传算法、零管理。
    • 支持可滚动和可更新的结果集、大结果集、外部结果排序、函数可以返回结果集。
    • 加密的数据库(AES)、SHA-256加密的密码、加密功能、SSL。

    SQL支持

    • 支持多schema、information schema(Support for multiple schemas, information schema)。
    • 参照完整性/使用级联外键约束、check约束。
    • 内连接和外链接、子查询、只读视图和内嵌视图。
    • 触发器及Java函数/存储过程。
    • 很多内置功能,包括XML和无损压缩。
    • 广泛的数据类型,包括大对象(BLOB/CLOB)和数组。
    • 队列和自增长的列、计算列(可用于基于索引的功能)。
    • 支持ORDER BY、GROUP BY、HAVING、UNION、LIMIT、TOP。
    • 支持排序规则,包括ICU4J库。
    • 支持用户和角色。
    • 兼容模式支持IBM DB2、Apache Derby、HSQLDB、MS SQL Server、MySQL、Oracle、和PostgreSQL等。

    安全功能

    • 包括对SQL注入问题的解决方案。
    • 使用SHA-256和盐(SHA-256 and salt)认证用户密码。
    • 对于服务器模式的连接,用户密码从不会以纯文本格式通过网络传输。
    • 所有数据库文件(包括用于备份数据的脚本文件)可使用AES-128算法加密。
    • 远程JDBC驱动支持通过TLS的TCP/IP连接。
    • 内置的web服务器支持通过TLS连接。
    • 密码使用char数组发送到数据库,而不是String。

    其它功能和工具

    • 体积小巧(小于1.5MB),低内存需求。
    • 多种索引类型(b-tree、tree、hash)。
    • 支持多维索引。
    • 支持CSV文件。
    • 支持链表,及一个内置的虚拟“range”表。
    • 支持EXPLAIN PLAN声明;复杂的跟踪选项。
    • 数据库关闭可以延迟或者禁用以提高性能。
    • 自带基于web的控制台应用(已译成多国语言)。
    • 数据库可以生成SQL脚本文件。
    • 包含一个恢复工具,可以转储数据库内容。
    • 支持变量(例如计算运行总和)。
    • 自动重新编译预处理语句。
    • 使用少量数据库文件。
    • 为每一条记录和日志条目使用校验和以保证数据完整性。
    • 经过充分测试(高覆盖率、随机压力测试)。

    连接模式简介

    支持以下三种模式:

    • 嵌入式模式(使用JDBC的本地连接)。
    • 服务器模式(使用JDBC或ODBC的通过TCP/IP的远程连接)。
    • 混合模式(本地和远程连接同时存在)。

    嵌入式模式

    嵌入式模式

    在嵌入式模式下,应用程序使用和JDBC相同的JVM打开数据库。这是最快、最简单的连接方式。缺点是数据库任何时候只在一个虚拟机中打开。同时支持持久化和在内存中存储数据。没有同时打开数据库的数量限制,没有连接数限制。

    服务器模式

    服务器模式

    当使用服务器模式时(也称作远程模式或者客户端/服务端模式),应用程序使用 JDBC或ODBC API以远程方式打开数据库。数据库服务器需要在相同或者另外的虚拟机,或者干脆另外一台计算机启动。 很多应用程序可以同时通过连接到这台服务器连接同一个数据库。在内部,该服务器进程以嵌入式模式打开多个数据库。 由于所有数据通过TCP/IP传输,服务器模式要比嵌入式模式慢一些。同时支持持久化和在内存中存储数据。每台服务器没有同时打开数据库的数量限制,没有 连接数限制。

    混合模式

    混合模式

    混合模式是嵌入式模式和服务器模式的组合。第一个应用程序在嵌入式模式中连接到数据 库,但也启动了一个数据库服务器,这样其他应用程序(运行在不同进程或虚拟机中)可以同时访问数据。本地连接像嵌入式模式一样快速,远程连接稍慢。 数据库服务器可以通过API,或者自动化(自动混合模式)启停。当使用自动混合模式时,所有要连接数据库的客户端可使用完全相同的URL。

    开发资源

    官方网站:http://www.h2database.com/
    开源地址:https://github.com/h2database/h2database

    from:http://hao.jobbole.com/h2-2/

  • 相关阅读:
    scrapy-redis使用以及剖析
    完全理解 Python 迭代对象、迭代器、生成器
    Python操作 RabbitMQ、Redis、Memcache、SQLAlchemy
    HTTP状态码
    Py西游攻关之RabbitMQ、Memcache、Redis
    Django contenttypes 应用
    cookie和session 以及Django中应用
    RESTful规范
    rest_framework框架的认识
    vue 总结
  • 原文地址:https://www.cnblogs.com/GarfieldEr007/p/10198029.html
Copyright © 2020-2023  润新知