zoukankan      html  css  js  c++  java
  • h2database轻量级数据库

    h2和derby一样,都是轻量级数据库,h2比derby还要轻巧,核心jar包不到1M。性能效率等等方面都非常好(前提不是高并发,高数据量)

    轻量级数据库的应用出其不意,可以完成很多以前常规开发中无法想象,或很难完成的功能。

    例如一下应用:

    某人以前给某公司做BSS, 遇到了下面的情况.
    系统的菜单 (树状结构)全部菜单项有2000多条, 菜单主要用在系统的上边导航 还有左边的菜单树
    地市/分公司列表 这个不多 (毕竟联通占有率不高) 但是也有3位数了
    这个应用场景极其的多, 很多操作又要用到, 相当于一个字典表
    地市分公司部门列表 全部数据2000条左右,也相当于字典表
    以上四种数据控制的"最小粒度"都是基于"人"的, 每个操作员操作系统时看到的都是不一样的.
    这个系统同时在线人数5000多.
    对于当时的运行环境来说,  web服务器是有N多台, 但是数据库并没有那么多,这种类似字典表的东西通常都是取出来放到缓存里,缓存可以借助ehcache之类的组件来实现.以此来减少对数据库的操作.
    但是对于上面的情况, 显然是做不到的, 因为 判断一个数据项,是否对于当前的操作员可见,要进行复杂的判断,而且要对数据项做全遍历.  而如果不缓存,每次都从数据库去取 ,这么做同样是不可取的.
    所以,最好的方法就是  用运行在web服务器上的"内存数据库"来实现一个支持 sql的 高级缓存.


    再拿游戏举下例子,游戏的存档就是一个小型的数据库,如果有嵌入式数据库帮忙开发游戏的话,就不用为存档系统大动干戈了,
    还有, NBA LIVE系列游戏里面包含了大量的球队和球员历史信息,这些信息就是被存在一个嵌入式数据库里的.如果没有嵌入式数据库,那么游戏中检索这些球员的数据将是多么繁琐的事情啊.
    同时嵌入式数据库还可以用来加密. 把软件运行时需要的资源(数据 文件 图片等)放到嵌入式数据库里, 运行时"查询出".
    免得自己再写一套机密机制.

  • 相关阅读:
    Eclipse怎么汉化
    eclipse的 project explore找不到了, 怎么把复制来的包放在project explore
    三 地图的绘制
    二 CheatEngine怎么提取地图数据
    一. 透明坦克跑起来
    第七章 继承与派生
    Quoit Design HDU
    C++学习_从C到C++
    C++学习_一道程序填空题重拾C++
    网络爬虫_BeautifulSoup库入门
  • 原文地址:https://www.cnblogs.com/huapox/p/3509878.html
Copyright © 2011-2022 走看看