1.什麼是儲存引擎:
現實生活中我們用來儲存資料的檔案有不同的型別,每種檔案型別對應各自不同的處理機制:比如處
理文字用txt型別,處理**用excel,處理用png等,資料庫中的表也應該有不同的型別,表的型別不同,
會對應mysql不同的訪問機制,表型別又稱為儲存引擎。
儲存引擎說白了就是如何儲存資料、如何為儲存的資料建立索引和如何更新、查詢資料等技術的實現方
法。因為在關聯式資料庫中資料的儲存是以表的形式儲存的,所以儲存引擎也可以稱為表型別(即儲存和
操作此表的型別)
在oracle 和sql server等資料庫中只有一種儲存引擎,所有資料儲存管理機制都是一樣的。而mysql
資料庫提供了多種儲存引擎。使用者可以根據不同的需求為資料表選擇不同的儲存引擎,使用者也可以根據
自己的需要編寫自己的儲存引擎
2.mysql支援的引擎:
show engines; #檢視所有支援的儲存引擎
show variables like 'storage_engine%'; #檢視正在使用的儲存引擎
#innodb
儲存引擎支援事務,其設計目標主要面向聯機事務處理(oltp)的應用。其
特點是行鎖設計、支援外來鍵,並支援類似 oracle 的非鎖定讀,即預設讀取操作不會產生鎖。 從 mysql 5.5.8 版本開始是預設的儲存引擎。
#myisam 儲存引擎
不支援事務、表鎖設計、支援全文索引,主要面向一些 olap 數 據庫應用
#ndb
儲存引擎ndb 儲存引擎的特點是資料全部放在記憶體中(從 5.1 版本開始,可以將非索引數 據放在磁碟上),因此主鍵查詢(primary key lookups)的速度極快,
系統,其面向的也是 oltp 的資料庫應用型別。
#memory 儲存引擎
正如其名,memory 儲存引擎中的資料都存放在記憶體中,資料庫重 啟或發生崩潰,表中的資料都將消失。它非常適合於儲存 oltp 資料庫應用中臨時資料的臨時表,
也可以作為 olap 資料庫應用中資料倉儲的維度表。memory 儲存引擎預設使用雜湊 索引,而不是通常熟悉的 b+ 樹索引。
#infobright 儲存引擎
第三方的儲存引擎。其特點是儲存是按照列而非行的,因此非常 適合 olap 的資料庫應用。其官方**是 上面有不少成功的資料 倉庫案例可供分析。
#ntse 儲存引擎
網易公司開發的面向其內部使用的儲存引擎。目前的版本不支援事務, 但提供壓縮、行級快取等特性,不久的將來會實現面向記憶體的事務支援。
#blackhole
黑洞儲存引擎,可以應用於主備複製中的分發主庫。
3.使用資料引擎
方法1:建表時指定
mariadb [db1]> create table innodb_t1(id int,name char)engine=innodb;
mariadb [db1]> create table innodb_t2(id int)engine=innodb;
mariadb [db1]> show create table innodb_t1;
mariadb [db1]> show create table innodb_t2;
方法2:在配置檔案中指定預設的儲存引擎
/etc/my.cnf
[mysqld]
default-storage-engine=innodb
innodb_file_per_table=1
Mysql 儲存引擎之 MyISAM儲存引擎
myisam是預設儲存引擎。每個myisam在磁碟上儲存成三個檔案。frm檔案儲存表定義 myd檔案儲存資料 myi檔案儲存索引。要明確表示你想要用乙個myisam 請用engine表選項指出來 create table test myisam id int engine myisam 2 如下是m...
MySQL之儲存引擎
這幾天研習mysql資料庫的儲存引擎,以便能更深層次的掌握mysql這個優秀的資料庫。首先,mysql資料庫獨有的外掛程式式儲存引擎架構使得它有別於其他任何資料庫,其中不同的儲存引擎有著完全不同的功能和效能。mysql表儲存引擎主要有 innodb儲存引擎,myisam儲存引擎,ndb儲存引擎,me...
MySQL之儲存引擎
1.檢視某個資料表的命令 show create table tbl name mysql可以將資料以不同的技術儲存在檔案 記憶體 中,這種技術就稱為儲存引擎。每一種儲存引擎使用不同的儲存機制 索引技巧 鎖定水平,最終提供廣泛且不同的功能。mysql支援的儲存引擎有 myisam 適用於事物的處理不...