資料庫初識2

2022-07-26 23:12:13 字數 2888 閱讀 7476

mysql> show engines\g;# 檢視所有支援的引擎

mysql> show variables like 'storage_engine%'; # 檢視正在使用的儲存引擎

1

、innodb 儲存引擎

支援事務,其設計目標主要面向聯機事務處理(oltp)的應用。其

特點是行鎖設計、支援外來鍵,並支援類似 oracle 的非鎖定讀,即預設讀取操作不會產生鎖。 從 mysql

5.5.8

版本開始是預設的儲存引擎。

innodb 儲存引擎將資料放在乙個邏輯的表空間中,這個表空間就像黑盒一樣由 innodb 儲存引擎自身來管理。從 mysql

4.1(包括 4.1)版本開始,可以將每個 innodb 儲存引擎的 表單獨存放到乙個獨立的 ibd 檔案中。此外,innodb 儲存引擎支援將裸裝置(row disk

)用 於建立其表空間。

innodb 通過使用多版本併發控制(mvcc)來獲得高併發性,並且實現了 sql 標準 的

4 種隔離級別,預設為 repeatable 級別,同時使用一種稱為 netx-

key locking 的策略來 避免幻讀(phantom)現象的產生。除此之外,innodb 儲存引擎還提供了插入緩衝(insert buffer)、二次寫(double write)、自適應雜湊索引(adaptive hash index)、預讀(read

ahead) 等高效能和高可用的功能。

對於表中資料的儲存,innodb 儲存引擎採用了聚集(

clustered)的方式,每張表都是按 主鍵的順序進行儲存的,如果沒有顯式地在表定義時指定主鍵,innodb 儲存引擎會為每一 行生成乙個 6

位元組的 rowid,並以此作為主鍵。

innodb 儲存引擎是 mysql 資料庫最為常用的一種引擎,facebook、google、yahoo 等 公司的成功應用已經證明了 innodb 儲存引擎具備高可用性、高效能以及高可擴充套件性。對其 底層實現的掌握和理解也需要時間和技術的積累。如果想深入了解 innodb 儲存引擎的工作 原理、實現和應用,可以參考《mysql 技術內幕:innodb 儲存引擎》一書。

2、myisam 儲存引擎

不支援事務、表鎖設計、支援全文索引,主要面向一些 olap 數 據庫應用,在 mysql

5.5.8

版本之前是預設的儲存引擎(除 windows 版本外)。資料庫系統 與檔案系統乙個很大的不同在於對事務的支援,myisam 儲存引擎是不支援事務的。究其根 本,這也並不難理解。使用者在所有的應用中是否都需要事務呢?在資料倉儲中,如果沒有 etl 這些操作,只是簡單地通過報表查詢還需要事務的支援嗎?此外,myisam 儲存引擎的 另乙個與眾不同的地方是,它的緩衝池只快取(cache)索引檔案,而不快取資料檔案,這與 大多數的資料庫都不相同。

3、ndb 儲存引擎

年,mysql ab 公司從 sony ericsson 公司收購了 ndb 儲存引擎。 ndb 儲存引擎是乙個集群儲存引擎,類似於 oracle 的 rac 集群,不過與 oracle rac 的 share everything 結構不同的是,其結構是 share nothing 的集群架構,因此能提供更高階別的 高可用性。ndb 儲存引擎的特點是資料全部放在記憶體中(從

5.1 版本開始,可以將非索引數 據放在磁碟上),因此主鍵查詢(primary

key4

、memory 儲存引擎

正如其名,memory 儲存引擎中的資料都存放在記憶體中,資料庫重 啟或發生崩潰,表中的資料都將消失。它非常適合於儲存 oltp 資料庫應用中臨時資料的臨時表,也可以作為 olap 資料庫應用中資料倉儲的維度表。memory 儲存引擎預設使用雜湊 索引,而不是通常熟悉的 b

+樹索引。

5、infobright 儲存引擎

第三方的儲存引擎。其特點是儲存是按照列而非行的,因此非常 適合 olap 的資料庫應用。其官方**是 http:

,上面有不少成功的資料 倉庫案例可供分析。

6、ntse 儲存引擎

網易公司開發的面向其內部使用的儲存引擎。目前的版本不支援事務, 但提供壓縮、行級快取等特性,不久的將來會實現面向記憶體的事務支援。

7、blackhole

黑洞儲存引擎,可以應用於主備複製中的分發主庫。

儲存引擎

指定表型別/儲存引擎

create table t1(id int)engine=innodb;# 預設不寫就是innodb

# 建立資料庫

create database db3 charset utf8;

# 進入資料庫

use db3;

# 建立表

create table t1(

id int,name varchar(50),age int(3)

);# 插入資料

insert into t1 values

(1,'ann',12),

(2,'ben',18);

# 查詢儲存結構 資料

select * from t1;

# 查表結構

desc t1;

# 檢視表強襲結構

show create table t1\g;

# 複製表:

create database db7 charset utf8;

use db7;

# 1 全複製

# 建立庫 進入庫 新建表複製結構和記錄;

create table new select * from db5.t2;

# 2 複製表結構,不要記錄(內容):

create table jiegou like db5.t2;

# 刪除表;

drop table new

資料庫 初識

通俗講,資料庫就是以一定格式進行組織資料的集合,直觀來看,資料庫就是電腦上一些具有特殊格式的資料檔案的集合.通常談到資料庫會涉及4個基本概念,即資料,資料庫,資料管理系統,資料庫系統.資料描述世界或者事物的符號記錄稱為資料.數字,文字,聲音,影象 這些都是資料.對於計算機來說,只能處理二進位制資料 ...

初識資料庫

隨著vb學習任務的結束,我又迎來了新的學習任務 資料庫。剛接觸資料庫真是一頭霧水啊,看哪哪覺得陌生,那麼什麼是資料庫呢?下面蒐集的這些資料希望對我們初學者有所幫助。資料庫,顧名思義就是 資料的倉庫 計算機系統經常用來處理各種各樣的,大量的資料,比如使用計算機系統收集超市裡進出貨的清單,某地區的人口資...

初識MySQL資料庫

設定系統環境,系統環境的作用就是每次啟動dos命令後不用改變當前目錄即可直接輸入mysql命令。將以下路徑新增到系統環境path中 c program files mysql mysql 5.7.10 win32 bin 修改my default.ini資訊,將檔名改為 my.ini 新增以下三條語...