H2數據庫攻略之一-簡介

1.H2數據庫介紹

常用的開源數據庫:H2,Derby,HSQLDB,MySQL,PostgreSQL。其中H2,HSQLDB類似,十分適合作爲嵌入式數據庫使用,其它的數據庫大部分都需要安裝獨立的客戶端和服務器端。
H2的優勢:
1、h2採用純Java編寫,因此不受平臺的限制。
2、h2只有一個jar文件,十分適合作爲嵌入式數據庫試用。
3、性能和功能的優勢

H2比HSQLDB的最大的優勢就是h2提供了一個十分方便的web控制檯用於操作和管理數據庫內容,這點比起HSQLDB的swing和awt控制檯實在好用多了。

H2和各數據庫特徵比較。
這裏寫圖片描述

2.H2數據庫應用場景

h2和derby一樣,都是輕量級數據庫,h2比derby還要輕巧,核心jar包不到1M。性能效率等等方面都非常好(前提不是高併發,高數據量)
輕量級數據庫的應用出其不意,可以完成很多以前常規開發中無法想象,或很難完成的功能。
例如以下應用:
某人以前給某公司做BSS, 遇到了下面的情況.
系統的菜單 (樹狀結構)全部菜單項有2000多條, 菜單主要用在系統的上邊導航 還有左邊的菜單樹
地市/分公司列表 這個不多 (畢竟聯通佔有率不高) 但是也有3位數了
這個應用場景極其的多, 很多操作又要用到, 相當於一個字典表
地市分公司部門列表 全部數據2000條左右,也相當於字典表
以上四種數據控制的”最小粒度”都是基於”人”的, 每個操作員操作系統時看到的都是不一樣的.
這個系統同時在線人數5000多.
對於當時的運行環境來說, web服務器是有N多臺, 但是數據庫並沒有那麼多,這種類似字典表的東西通常都是取出來放到緩存裏,緩存可以藉助ehcache之類的組件來實現.以此來減少對數據庫的操作.
但是對於上面的情況, 顯然是做不到的, 因爲 判斷一個數據項,是否對於當前的操作員可見,要進行復雜的判斷,而且要對數據項做全遍歷. 而如果不緩存,每次都從數據庫去取 ,這麼做同樣是不可取的.
所以,最好的方法就是 用運行在web服務器上的”內存數據庫”來實現一個支持 sql的 高級緩存.

再拿遊戲舉下例子,遊戲的存檔就是一個小型的數據庫,如果有嵌入式數據庫幫忙開發遊戲的話,就不用爲存檔系統大動干戈了,
還有, NBA LIVE系列遊戲裏面包含了大量的球隊和球員歷史信息,這些信息就是被存在一個嵌入式數據庫裏的.如果沒有嵌入式數據庫,那麼遊戲中檢索這些球員的數據將是多麼繁瑣的事情啊.
同時嵌入式數據庫還可以用來加密. 把軟件運行時需要的資源(數據 文件 圖片等)放到嵌入式數據庫裏, 運行時”查詢出”.
免得自己再寫一套機密機制.

發佈了52 篇原創文章 · 獲贊 12 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章