h2 + mysql

    最近在作一个项目,因为出于各类考虑(如节省数据库空间,数据同步,便于操做...),大都会在一些字段上采起保存关联ID的作法,页面展现的时候就会经过转换的方式,显示关联ID的名称。如部门,职位等。mysql

    如何经过ID获得相关的名称:sql

①经过连表查询的方式,这种方法相信大伙都不会认同的。数据库

②经过在启动时将部门,职位,这些要高频查询的的表信息加载到缓存中,每次经过查询缓存就能获得显示的名称。但我的以为每次要在内存中遍历此次数据,并且这些部门表,职位表比较大,感受也不是一个最佳的方式。windows

③经过使用内存数据库,在启动时将mysql中的表加载在内存数据库中,查询的时候经过ID查询内存数据库,这比②少了在内存中遍历这个环节,虽然这会涉及链接内存数据库等开销,但感受不必再比较下去。缓存

因为本项目只使用内存数据库的查询功能,且是适合windows平台部署,最终内存数据选择为:H2 。url

最终:spa

如何整合h2到项目中呢:只要在项目中加入h2的开发jar包,就能够了,不须要h2的service端(若不是使用h2的内存模式,则要下载service端并进行启动相关服务)。code

注意:内存

To keep the database open, add ;DB_CLOSE_DELAY=-1 to the database URL. 开发

为了让内存数据库一直开着,必需要在数据库地址后面加上;DB_CLOSE_DELAY=-1

如果数据库地址没有具体指定数据库名称则每次链接都会建立一个新数据db,so 应该在db url 后面指定具体名称,如 jdbc:h2:mem:db1

项目已经在使用,暂时能知足需求,并尚未出什么问题。

相关文章
相关标签/搜索