mysql數據庫存儲引擎

1、存儲引擎概念mysql

數據庫就是存放數據的倉庫。至於怎麼存儲,就涉及到存儲引擎。算法

不一樣的存儲引擎使用不一樣的存儲機制、索引機制、鎖定水平,根據實際需求選擇不一樣的存儲引擎。sql

2、mysql支持的存儲引擎數據庫

MyISAM、InnoDB、Memory、CSV、Archive併發

經常使用的:MyISAM、InnoDB高併發

3、各類存儲引擎比較性能

mysql引擎有不少,只介紹如下通用的引擎。日誌

MyISAM引擎orm

不支持事務操做,支持表級鎖,支持建立索引,不支持外鍵,併發性能會低不少(表級鎖),存儲空間會佔用比較小。索引

InnoDB引擎

支持事務操做,支持行級鎖,支持建立索引,支持外鍵,容許併發量更大(行級鎖),存儲空間會佔用比較大。InnoDB是默認的MySQL引擎。

memery 引擎

全部表的數據存儲在內存中,數據庫重啓和崩潰數據即將消失。很是適合儲存臨時數據的臨時表以及數據倉庫的經緯表。

Archive引擎

Archive存儲引擎只支持Insert和select操做,Archive存儲引擎十分適合儲存歸檔的數據,好比日誌。使用行鎖實現高併發的而操做。並且Archive存儲引擎使用了zlib算法,將數據行進行壓縮後儲存,壓縮比達1:10。

存儲引擎的選擇

1.若是要提供事物能力,並要求實現併發控制,InnoDB是一個好的選擇。

2.若是數據表主要用來插入和查詢記錄,則MyISAM引擎能提供較高的處理效率。

3.若是隻是臨時存放數據,數據量不大,以選擇將數據保存在內存中的Memory引擎。

4.若是隻有INSERT和SELECT操做,能夠選擇Archive,如記錄日誌信息可使用Archive。

4、設置表的存儲引擎

一、查看錶的引擎

SELECT TABLE_SCHEMA,TABLE_NAME,TABLE_TYPE,ENGINE FROM information_schema.TABLES WHERE TABLE_NAME = 'TABLE_NAME';

SHOW CREATE TABLE TABLE_NAME;(也可從建立表的sql語句查看)。

SHOW TABLE STATUS where name ='TABLE_NAME'

二、修改表的引擎

ALTER TABLE TABLE_NAME ENGINE = InnoDB;

3.建立表時指定引擎

CREATE TABLE TABLE_NAME (ID INT) ENGINE=InnoDB;

相關文章
相關標籤/搜索