自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Java 生態(tài)圈中的嵌入式數(shù)據(jù)庫(kù),哪家強(qiáng)?

運(yùn)維 數(shù)據(jù)庫(kù)運(yùn)維
嵌入式數(shù)據(jù)庫(kù)一個(gè)很陌生的詞匯,以前只是聽說,但是沒有真正使用過,今天小編和大家一起來揭開它的面紗。

 嵌入式數(shù)據(jù)庫(kù)一個(gè)很陌生的詞匯,以前只是聽說,但是沒有真正使用過,今天小編和大家一起來揭開它的面紗。

[[325892]]

一、介紹

初次接觸嵌入式數(shù)據(jù)庫(kù)(Embedded Database)可能有點(diǎn)模糊,什么是嵌入式數(shù)據(jù)庫(kù)?為什么要使用嵌入式數(shù)據(jù)庫(kù)?怎么使用嵌入式數(shù)據(jù)庫(kù)?如何選擇?本文將帶大家一起揭曉答案。

從軟件角度來說,數(shù)據(jù)庫(kù)分類為兩種:

  • 第一種:數(shù)據(jù)庫(kù)服務(wù)器(Database Server)
  • 第二種:嵌入式數(shù)據(jù)庫(kù)(Embedded Database)

像 Oracle、PostgreSQL、MySQL 和 SQL Server 等這些大家熟知的數(shù)據(jù)庫(kù),我們一般稱它為數(shù)據(jù)庫(kù)服務(wù)器,當(dāng)然也不排除某些數(shù)據(jù)庫(kù)也提供嵌入式版本,例如 MySQL Embedded 就是一個(gè)嵌入式的數(shù)據(jù)庫(kù)。

而像 SQLite、Berkeley DB、Derby、H2、HSQL DB 等數(shù)據(jù)庫(kù),一本內(nèi)嵌在應(yīng)用程序中,與應(yīng)用程序一起運(yùn)行,我們稱它為嵌入式數(shù)據(jù)庫(kù)。

嵌入式數(shù)據(jù)庫(kù)跟數(shù)據(jù)庫(kù)服務(wù)器最大的區(qū)別在于它們運(yùn)行的地址空間不同。通常,數(shù)據(jù)庫(kù)服務(wù)器獨(dú)立地運(yùn)行一個(gè)守護(hù)進(jìn)程(daemon),而嵌入式數(shù)據(jù)庫(kù)與應(yīng)用程序運(yùn)行在同一個(gè)進(jìn)程。

在實(shí)際開發(fā)中,平時(shí)接觸最多的應(yīng)該是數(shù)據(jù)庫(kù)服務(wù)器,對(duì)嵌入式數(shù)據(jù)庫(kù)使用的比較少。

但是為何會(huì)出現(xiàn)嵌入式數(shù)據(jù)庫(kù)呢?

在小型的應(yīng)用程序中,例如小型掌上游戲機(jī),不適合部署高達(dá)幾百兆的數(shù)據(jù)庫(kù)服務(wù)器,同時(shí)也沒有聯(lián)網(wǎng)的必要,一種輕量級(jí)的數(shù)據(jù)庫(kù)需求由此誕生!

與常見的數(shù)據(jù)庫(kù)相比,嵌入式數(shù)據(jù)庫(kù)具有體積小、功能齊備、可移植性、健壯性等特點(diǎn),例如我們所熟知的 SVN 版本控制軟件就使用到了 SQLite 作為內(nèi)置數(shù)據(jù)庫(kù),SQLite 的安裝包只有不到 350 KB,在微型機(jī)中也有著廣泛的應(yīng)用,例如安卓、IOS 等移動(dòng)設(shè)備操作系統(tǒng)都內(nèi)置了 SQLite 數(shù)據(jù)庫(kù)!

鑒于嵌入式數(shù)據(jù)庫(kù)的種類比較多,有商業(yè)收費(fèi)的、也有開源免費(fèi)的!本文主要介紹開源免費(fèi)版的,例如 Derby、SQLite、H2 等,下面我們就一起來實(shí)踐一下各個(gè)數(shù)據(jù)庫(kù)的配置和用法。

二、Derby

Derby 可以說是 100% 由 Java 編寫的一款數(shù)據(jù)庫(kù),而且是開源免費(fèi)的,非常小巧,核心部分derby.jar只有 2M!

很多人可能覺得 Derby 不是很熱門,但 Derby 已經(jīng)開發(fā)了將近二十年!

1996 年,一個(gè)叫做 Cloudscape, Inc 的新公司成立了,公司的目標(biāo)是構(gòu)建一個(gè)用 Java 語(yǔ)言編寫的數(shù)據(jù)庫(kù)服務(wù)器。

公司的第一個(gè)發(fā)行版在一年之后推出,后來產(chǎn)品的名稱變成 Cloudscape。

1999 年,Cloudscape, Inc. 被大型數(shù)據(jù)庫(kù)廠商 Informix Software, Inc. 收購(gòu)。

Informix Software 在 2001 年又被 IBM 收購(gòu),然后 IBM Cloudscape™ 數(shù)據(jù)庫(kù)系統(tǒng)在許多 IBM 的產(chǎn)品中被用作內(nèi)嵌的數(shù)據(jù)庫(kù)引擎。

2004 年 4 月,IBM 把 Cloudscape 數(shù)據(jù)庫(kù)軟件贈(zèng)送給 Apache 軟件基金會(huì),從此 Apache Derby 項(xiàng)目誕生了。

接著 SUN 也為 Derby 捐獻(xiàn)了一個(gè)團(tuán)隊(duì)。在JavaSE6.0中,SUN 將其命名為JavaDB。

2.1、項(xiàng)目引入

因?yàn)?Derby 是用 java 編寫的,所以集成的時(shí)候比較容易,直接通過maven在pom.xml中依賴庫(kù)文件,即可進(jìn)行開發(fā)!

  1. <!--derby數(shù)據(jù)庫(kù)--> 
  2. <dependency> 
  3.     <groupId>org.apache.derby</groupId> 
  4.     <artifactId>derby</artifactId> 
  5.     <version>10.14.1.0</version> 
  6.     <scope>runtime</scope> 
  7. </dependency> 

2.2、環(huán)境配置

和所有的數(shù)據(jù)庫(kù)連接一樣,基本都是配置驅(qū)動(dòng)類、連接地址、賬號(hào)、密碼等信息。

 

  1. String DRIVER_CLASS = "org.apache.derby.jdbc.EmbeddedDriver"
  2. String JDBC_URL = "jdbc:derby:derbyDB;create=true"
  3. String USER = "root"
  4. String PASSWORD = "root"

說明:

  • org.apache.derby.jdbc.EmbeddedDriver表示使用derby嵌入式數(shù)據(jù)庫(kù)模式。
  • JDBC_URL中的derbyDB表示創(chuàng)建一個(gè)名為derbyDB的臨時(shí)數(shù)據(jù)庫(kù),如果沒有會(huì)自動(dòng)創(chuàng)建。
  • USER、PASSWORD主要用于客戶端登錄使用。

2.3、單元測(cè)試應(yīng)用

下面,我們使用JDBC編寫一個(gè)測(cè)試類,來測(cè)試一下derby是否可以正常使用。

 

  1. public class DerbyTest { 
  2.  
  3.     /** 
  4.      * 以嵌入式(本地)連接方式連接數(shù)據(jù)庫(kù) 
  5.      */ 
  6.     private static final String JDBC_URL = "jdbc:derby:derbyDB;create=true"
  7.     private static final String DRIVER_CLASS = "org.apache.derby.jdbc.EmbeddedDriver"
  8.     private static final String USER = "root"
  9.     private static final String PASSWORD = "root"
  10.  
  11.  
  12.     public static void main(String[] args) throws Exception { 
  13.         //與數(shù)據(jù)庫(kù)建立連接 
  14.         Class.forName(DRIVER_CLASS); 
  15.         Connection conn = DriverManager.getConnection(JDBC_URL, USERPASSWORD); 
  16.         Statement statement = conn.createStatement(); 
  17.  
  18.         //刪除表 
  19.         statement.execute("DROP TABLE USER_INF"); 
  20.         //創(chuàng)建表 
  21.         statement.execute("CREATE TABLE USER_INF(id VARCHAR(50) PRIMARY KEY, name VARCHAR(50) NOT NULL, sex VARCHAR(50) NOT NULL)"); 
  22.  
  23.         //插入數(shù)據(jù) 
  24.         statement.executeUpdate("INSERT INTO USER_INF VALUES('1', '程咬金', '男') "); 
  25.         statement.executeUpdate("INSERT INTO USER_INF VALUES('2', '孫尚香', '女') "); 
  26.         statement.executeUpdate("INSERT INTO USER_INF VALUES('3', '猴子', '男') "); 
  27.  
  28.         //查詢數(shù)據(jù) 
  29.         ResultSet resultSet = statement.executeQuery("select * from USER_INF"); 
  30.         while (resultSet.next()) { 
  31.             System.out.println(resultSet.getInt("id") + ", " + resultSet.getString("name") + ", " + resultSet.getString("sex")); 
  32.         } 
  33.         //關(guān)閉連接 
  34.         statement.close(); 
  35.         conn.close(); 
  36.     } 

輸出結(jié)果:

 

  1. 1, 程咬金, 男 
  2. 2, 孫尚香, 女 
  3. 3, 猴子, 男 

當(dāng)程序運(yùn)行完之后,會(huì)在當(dāng)前項(xiàng)目根目錄生成一個(gè)derbyDB文件夾,里面會(huì)存放一些持久化的數(shù)據(jù),當(dāng)下次再連接derbyDB數(shù)據(jù)庫(kù)名稱時(shí),可以查詢出之前插入的歷史數(shù)據(jù),這個(gè)特性可以防止數(shù)據(jù)丟失!

 

 

 

 

 

值得注意的是:derby 對(duì)很多 mysql 的關(guān)鍵字并不支持,同時(shí) derby 不支持插入空值。

在之后的版本中,derby 還可以作為一個(gè)數(shù)據(jù)庫(kù)服務(wù)器,通過jar啟動(dòng)單獨(dú)部署在一臺(tái)服務(wù)器上,在連接地址上加上 IP 和端口號(hào),例如jdbc://derby://localhost:1527/derbyDB。

如果想使用可視化客戶端工具來訪問和管理derby,可以使用SQuirreL SQL Client客戶端,下載地址http://www.squirrelsql.org/#installation。

在目前絕大多數(shù)的關(guān)于嵌入式數(shù)據(jù)庫(kù)應(yīng)用中,derby 的出場(chǎng)次數(shù)還是較少。

三、SQLite

SQLite 是 D.RichardHipp 用一個(gè)小型的C庫(kù)開發(fā)的一種強(qiáng)有力的嵌入式關(guān)系數(shù)據(jù)庫(kù),雖然功能較 Berkeley DB(商業(yè)數(shù)據(jù)庫(kù))稍顯遜色,但它簡(jiǎn)單易學(xué)、速度較快,同時(shí)提供了豐富的數(shù)據(jù)庫(kù)接口,提供了對(duì) SQL92 的大多數(shù)支持:支持多表和索引、事務(wù)、視圖、觸發(fā)和一系列的用戶接口及驅(qū)動(dòng)。

SQLite 不僅支持 Windows/Linux/Unix 等等主流的操作系統(tǒng),同時(shí)能夠跟很多程序語(yǔ)言相結(jié)合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,比起 Mysql、PostgreSQL 這兩款開源的世界著名數(shù)據(jù)庫(kù)管理系統(tǒng)來講,它的處理速度比他們都快,全部源碼大致3萬(wàn)行C代碼,文件大約 350KB,支持?jǐn)?shù)據(jù)庫(kù)大小至 2TB!

幾乎常年占居嵌入式數(shù)據(jù)庫(kù)的第一位!

3.1、SQLite安裝

3.1.1、windows安裝

1.訪問 SQLite 下載頁(yè)面https://www.sqlite.org/download.html。

2.下載sqlite-tools-win32-*.zip和sqlite-dll-win32-*.zip壓縮文件。

3.創(chuàng)建文件夾C:\sqlite,并在此文件夾下解壓上面兩個(gè)壓縮文件,將得到 sqlite3.def、sqlite3.dll和sqlite3.exe文件。

4.添加C:\sqlite到PATH環(huán)境變量。

最后在命令提示符下,輸入sqlite3命令,顯示如下結(jié)果表示安裝成功!

 

  1. C:\>sqlite3 
  2. SQLite version 3.7.15.2 2013-01-09 11:53:05 
  3. Enter ".help" for instructions 
  4. Enter SQL statements terminated with a ";" 

3.1.2、linux安裝

目前,幾乎所有版本的 Linux 操作系統(tǒng)都附帶 SQLite。所以,只需要在命令行輸入輸入sqlite3,即可檢查出機(jī)器上是否已經(jīng)安裝了 SQLite!

 

  1. $ sqlite3 
  2. SQLite version 3.7.15.2 2013-01-09 11:53:05 
  3. Enter ".help" for instructions 
  4. Enter SQL statements terminated with a ";" 

如果沒有看到上面的結(jié)果,安裝也很簡(jiǎn)單!

1.訪問 SQLite 下載頁(yè)面https://www.sqlite.org/download.html。

2.下載sqlite-autoconf-*.tar.gz并上傳到 linux 服務(wù)器。

3.執(zhí)行安裝操作

例如,安裝步驟示例:

 

  1. $ tar xvzf sqlite-autoconf-3071502.tar.gz 
  2. $ cd sqlite-autoconf-3071502 
  3. $ ./configure --prefix=/usr/local 
  4. $ make 
  5. $ make install 

3.1.3、mac安裝

mac安裝操作與linux類似。

3.2、項(xiàng)目引入

sqlite 也可以直接通過maven在pom.xml中依賴庫(kù)文件,即可進(jìn)行開發(fā)!

  1. <!--sqlite--> 
  2. <dependency> 
  3.     <groupId>org.xerial</groupId> 
  4.     <artifactId>sqlite-jdbc</artifactId> 
  5.     <version>3.7.2</version> 
  6. </dependency> 

3.3、環(huán)境配置

 

  1. String DRIVER_CLASS = "org.sqlite.JDBC"
  2. String JDBC_URL = "jdbc:sqlite:sqliteDB.db"
  3. String USER = "root"
  4. String PASSWORD = "root"

說明:

  • org.sqlite.JDBC表示使用sqlite嵌入式數(shù)據(jù)庫(kù)模式。
  • JDBC_URL中的sqliteDB表示創(chuàng)建一個(gè)名為sqliteDB的臨時(shí)數(shù)據(jù)庫(kù),如果沒有會(huì)自動(dòng)創(chuàng)建。
  • USER、PASSWORD主要用于客戶端登錄使用。

3.4、單元測(cè)試應(yīng)用

下面,來測(cè)試一下sqlite是否可以正常使用。

 

  1. public class SQLiteTest { 
  2.  
  3.     /** 
  4.      * 以嵌入式(本地)連接方式連接數(shù)據(jù)庫(kù) 
  5.      */ 
  6.     private static final String JDBC_URL = "jdbc:sqlite:sqliteDB.db"
  7.     private static final String DRIVER_CLASS = "org.sqlite.JDBC"
  8.     private static final String USER = "root"
  9.     private static final String PASSWORD = "root"
  10.  
  11.     public static void main(String[] args) throws Exception { 
  12.         //與數(shù)據(jù)庫(kù)建立連接 
  13.         Class.forName(DRIVER_CLASS); 
  14.         Connection conn = DriverManager.getConnection(JDBC_URL, USERPASSWORD); 
  15.         Statement statement = conn.createStatement(); 
  16.  
  17.         //刪除表 
  18.         statement.execute("DROP TABLE IF EXISTS USER_INF"); 
  19.         //創(chuàng)建表 
  20.         statement.execute("CREATE TABLE USER_INF(id VARCHAR(50) PRIMARY KEY, name VARCHAR(50) NOT NULL, sex VARCHAR(50) NOT NULL)"); 
  21.  
  22.         //插入數(shù)據(jù) 
  23.         statement.executeUpdate("INSERT INTO USER_INF VALUES('1', '程咬金', '男') "); 
  24.         statement.executeUpdate("INSERT INTO USER_INF VALUES('2', '孫尚香', '女') "); 
  25.         statement.executeUpdate("INSERT INTO USER_INF VALUES('3', '猴子', '男') "); 
  26.  
  27.         //查詢數(shù)據(jù) 
  28.         ResultSet resultSet = statement.executeQuery("select * from USER_INF"); 
  29.         while (resultSet.next()) { 
  30.             System.out.println(resultSet.getInt("id") + ", " + resultSet.getString("name") + ", " + resultSet.getString("sex")); 
  31.         } 
  32.         //關(guān)閉連接 
  33.         statement.close(); 
  34.         conn.close(); 
  35.     } 

輸出結(jié)果:

 

  1. 1, 程咬金, 男 
  2. 2, 孫尚香, 女 
  3. 3, 猴子, 男 

當(dāng)程序運(yùn)行完之后,也會(huì)在當(dāng)前項(xiàng)目的根目錄下生成上文自定義的一個(gè)名為sqliteDB的文件。

 

 

 

 

每次操作名為sqliteDB的數(shù)據(jù)庫(kù)時(shí)候,數(shù)據(jù)會(huì)持久化到sqliteDB文件中,從而防止數(shù)據(jù)丟失。

如果想使用可視化客戶端工具來訪問和管理sqliteDB,可以使用navicat來連接,選擇生成的sqliteDB文件,輸入相應(yīng)的賬號(hào)、密碼,便可進(jìn)行管理維護(hù)!

 

 

 

 

 

 

 

 

四、H2

h2 是一款純java編寫的另一款嵌入式數(shù)據(jù)庫(kù),它本身只是一個(gè)類庫(kù),即只有一個(gè) jar 文件,可以直接嵌入到應(yīng)用項(xiàng)目中,同時(shí)還提供了非常友好的基于 web 的數(shù)據(jù)庫(kù)管理界面。

網(wǎng)上有很多開發(fā)者拿它與 derby 做對(duì)比,稱它與 mysql 數(shù)據(jù)庫(kù)兼容性強(qiáng),口碑較好。

具體是否真的如此,在后文我們會(huì)進(jìn)行相應(yīng)的性能測(cè)試,下面一起來看看在開發(fā)中如何使用。

4.1、項(xiàng)目引入

既然 h2 是純java編寫,可以直接通過maven在pom.xml中依賴庫(kù)文件,即可進(jìn)行開發(fā)!

  1. <!--h2數(shù)據(jù)庫(kù)--> 
  2. <dependency> 
  3.     <groupId>com.h2database</groupId> 
  4.     <artifactId>h2</artifactId> 
  5.     <version>1.4.200</version> 
  6.     <scope>runtime</scope> 
  7. </dependency> 

4.2、環(huán)境配置

  1. String DRIVER_CLASS = "org.h2.Driver"
  2. String JDBC_URL = "jdbc:h2:mem:h2DB"
  3. String USER = "root"
  4. String PASSWORD = "root"

說明:

  • org.h2.Driver表示使用h2嵌入式數(shù)據(jù)庫(kù)模式。
  • JDBC_URL中的h2DB表示創(chuàng)建一個(gè)名為h2DB的臨時(shí)數(shù)據(jù)庫(kù)。
  • USER、PASSWORD主要用于客戶端登錄使用。

4.3、單元測(cè)試應(yīng)用

下面,來測(cè)試一下h2是否可以正常使用。

 

  1. public class H2Test { 
  2.  
  3.     /** 
  4.      * 以嵌入式(本地)連接方式連接H2數(shù)據(jù)庫(kù) 
  5.      */ 
  6.     private static final String JDBC_URL = "jdbc:h2:mem:h2DB"
  7.     private static final String DRIVER_CLASS = "org.h2.Driver"
  8.     private static final String USER = "root"
  9.     private static final String PASSWORD = "root"
  10.  
  11.     public static void main(String[] args) throws Exception { 
  12.         //與數(shù)據(jù)庫(kù)建立連接 
  13.         Class.forName(DRIVER_CLASS); 
  14.         Connection conn = DriverManager.getConnection(JDBC_URL, USERPASSWORD); 
  15.         Statement statement = conn.createStatement(); 
  16.  
  17.         //刪除表 
  18.         statement.execute("DROP TABLE IF EXISTS USER_INF"); 
  19.         //創(chuàng)建表 
  20.         statement.execute("CREATE TABLE USER_INF(id VARCHAR(50) PRIMARY KEY, name VARCHAR(50) NOT NULL, sex VARCHAR(50) NOT NULL)"); 
  21.  
  22.         //插入數(shù)據(jù) 
  23.         statement.executeUpdate("INSERT INTO USER_INF VALUES('1', '程咬金', '男') "); 
  24.         statement.executeUpdate("INSERT INTO USER_INF VALUES('2', '孫尚香', '女') "); 
  25.         statement.executeUpdate("INSERT INTO USER_INF VALUES('3', '猴子', '男') "); 
  26.  
  27.         //查詢數(shù)據(jù) 
  28.         ResultSet resultSet = statement.executeQuery("select * from USER_INF"); 
  29.         while (resultSet.next()) { 
  30.             System.out.println(resultSet.getInt("id") + ", " + resultSet.getString("name") + ", " + resultSet.getString("sex")); 
  31.         } 
  32.         //關(guān)閉連接 
  33.         statement.close(); 
  34.         conn.close(); 
  35.     } 

輸出結(jié)果:

 

  1. 1, 程咬金, 男 
  2. 2, 孫尚香, 女 
  3. 3, 猴子, 男 

h2 作為嵌入式數(shù)據(jù)庫(kù)應(yīng)用可以選擇兩種類型的url,第一種是內(nèi)存模式運(yùn)行,這種模式將數(shù)據(jù)臨時(shí)放到內(nèi)存中,程序結(jié)束后數(shù)據(jù)表和數(shù)據(jù)立即被銷毀,就不存在了;第二種是使用本地文件方式,將數(shù)據(jù)持久化到文件中,當(dāng)再次連接數(shù)據(jù)庫(kù)時(shí),可以獲取歷史數(shù)據(jù)。

 

  1. #第一種,內(nèi)存模式運(yùn)行 
  2. jdbc:h2:mem:testDB 
  3.  
  4. #第二種,使用本地文件方式 
  5. jdbc:h2:file:./target/testDB 

h2 還可以作為數(shù)據(jù)庫(kù)服務(wù)器使用,單獨(dú)部署在服務(wù)器上,應(yīng)用程序通過遠(yuǎn)程連接進(jìn)行操作,連接方式如下:

 

  1. #連接語(yǔ)法 
  2. jdbc:h2:tcp://<server>[:<port>]/[<path>]<databaseName> 
  3.  
  4. #范例: 
  5. jdbc:h2:tcp://localhost:8080/~/test 

如果想使用可視化客戶端工具來訪問和管理h2,可以通過它自帶的 web 頁(yè)面進(jìn)行管理。

下面我們以springboot項(xiàng)目為例,通過配置使用h2自帶的管理頁(yè)面來維護(hù)。

新建一個(gè)WebConfig類,配置h2的 web 控制臺(tái),如下:

 

  1. @Configuration 
  2. public class WebConfig { 
  3.  
  4.     /** 
  5.      * 添加h2控制臺(tái)的映射地址 
  6.      * @return 
  7.      */ 
  8.     @Bean 
  9.     ServletRegistrationBean h2servletRegistration(){ 
  10.         ServletRegistrationBean registrationBean = new ServletRegistrationBean(new WebServlet()); 
  11.         registrationBean.addUrlMappings("/h2-console/*"); 
  12.         return registrationBean; 
  13.     } 

啟動(dòng)springboot項(xiàng)目,打開瀏覽器,輸入http://127.0.0.1:8080/h2-console訪問管理頁(yè)面!

 

 

 

 

填寫連接地址、賬號(hào)、密碼之后,進(jìn)行連接!

 

 

 

 

可以在工作臺(tái),編寫 sql 語(yǔ)句進(jìn)行查詢,同時(shí)對(duì)查詢結(jié)果還可以進(jìn)行編輯操作。

五、性能測(cè)試

上文中我們介紹了三者數(shù)據(jù)庫(kù)的使用,下面,我們以循環(huán)插入1000、10000、100000次操作,分別來測(cè)試三個(gè)數(shù)據(jù)庫(kù)的性能,看看他們的表現(xiàn)如何?

 

 

 

 

從結(jié)果上看:

  • derby 與 sqlite 性能方面相差不大,但是隨著插入數(shù)量越多,derby 比 sqlite 稍遜一些。
  • 三者相比,h2 性能最好,無(wú)論是將數(shù)據(jù)寫入內(nèi)存,還是寫入到數(shù)據(jù)庫(kù),性能都是最好的。

六、總結(jié)

  • derby 作為嵌入式數(shù)據(jù)庫(kù),在性能和易用性都不錯(cuò),數(shù)據(jù)庫(kù)是以一個(gè)目錄存儲(chǔ)的,但只能用于Java程序中。
  • sqlite 因?yàn)橹С侄喾N語(yǔ)言,也提供了對(duì) SQL92 的大多數(shù)支持,執(zhí)行效率也不錯(cuò),作為嵌入式數(shù)據(jù)庫(kù)應(yīng)用最廣,但如果想查詢數(shù)據(jù)只能本地連接不能遠(yuǎn)程連接。
  • h2 作為嵌入式數(shù)據(jù)庫(kù)的新秀,主要優(yōu)勢(shì):超輕量級(jí),可以支持內(nèi)存模式,高效高速,能支持基本的全文搜索,同時(shí)與 mysql 數(shù)據(jù)庫(kù)兼容性最強(qiáng),一般使用場(chǎng)景最多的就是在開發(fā)環(huán)境上進(jìn)行回歸測(cè)試使用。

 

責(zé)任編輯:華軒 來源: Java極客技術(shù)
相關(guān)推薦

2020-05-18 19:29:03

技術(shù)資訊

2009-12-21 17:22:32

Windows7微軟嵌入式開發(fā)

2011-03-11 11:19:05

嵌入式數(shù)據(jù)庫(kù)

2011-03-07 09:57:24

Perst嵌入式數(shù)據(jù)庫(kù)

2013-09-02 14:41:05

Java嵌入式SQLite

2016-07-14 15:57:06

華為

2009-01-18 15:36:04

2012-06-15 10:03:57

2015-03-23 16:57:03

渠道生態(tài)圈華為

2013-09-22 10:39:00

MeayunDB

2011-07-08 10:45:19

SqlceSqlCeConnec

2016-11-01 14:30:09

大數(shù)據(jù)大數(shù)據(jù)技術(shù)

2018-11-13 15:05:33

大數(shù)據(jù)MapReduce機(jī)器

2010-07-05 13:36:21

SQL Server

2019-01-15 08:58:40

Kubernetes生態(tài)圈Docker

2013-07-22 17:41:58

2011-06-15 10:18:12

Windows PhoPerst

2009-11-19 09:35:36

eXtremeDB嵌入式實(shí)時(shí)數(shù)據(jù)庫(kù)McObject

2010-03-23 09:08:05

2015-09-02 13:15:31

Python
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)