MySQL 儲存引擎

2021-10-01 19:13:15 字數 2186 閱讀 9639

1.什麼是儲存引擎:

mysql的儲存引擎表示的是mysql中資料庫表的儲存型別,不同儲存型別,表的儲存方式都不相同。
檢視儲存引擎:

show engines\g
create

table

`student`

(`sid`

int(11)

notnull

auto_increment

,`sname`

varchar(20

)default

null

,`sage`

date

default

null

,`s***`

enum

('男'

,'女'

)default

null

,primary

key(

`sid`),

unique

key`sname`

(`sname`))

engine

=innodb

;

2.不同的儲存引擎有什麼區別:
儲存檔案的區別:

innodb:

.frm 表的結構

.ibd 資料和索引

myisam:

.frm 表的結構

.myi 索引

.myd 資料

memory:儲存在記憶體中

種類

鎖機制b-樹索引

雜湊索引

外來鍵事務

索引快取

資料快取

myisam

表瑣支援

不支援不支援

不支援支援

不支援innodb

行鎖支援

不支援支援

支援支援

支援memory

表鎖支援

支援不支援

不支援支援

支援3.為什麼mysql提供這麼多儲存引擎:

innodb:功能全  維護複雜

行鎖:加鎖複雜程度 > 表鎖

資料和索引:乙個檔案中既要管理資料 又要管理索引

索引 -> 目錄:通過索引能快速找到資料

用的時候資料從檔案 載入到記憶體使用 檔案io(特別耗時)

myisam:功能少 但是維護快

資料和索引:資料索引分開存放便於管理

索引 -> 資料位址

資料位址 -> 資料

用的時候資料從檔案 載入到記憶體使用 檔案io(特別耗時)

memory:儲存在記憶體中 資料如果單次使用

不用載入到記憶體中就能使用

當mysql關閉資料記憶體釋放

redis 記憶體及資料庫,持久化(能夠將資料放在檔案裡)。

4.如何改變儲存引擎

(1)在建立表的時候指定儲存引擎,如下:

create

table ai (

i bigint(20

)not

null

auto_increment

,primary

key(i)

)engine

=innodb

default

charset

=utf8;

(2)修改已存在表的儲存引擎,如下:

alter

table

user

engine

=innodb

;

(3)修改配置檔案,mysql server啟動的時候都會載入乙個配置檔案,windows下是my.ini檔案,linux下是my.cnf檔案,開啟配置檔案,在[mysqld]下面新增如下內容,儲存,重啟mysql server伺服器,預設就採用配置項指定的儲存引擎了。

# 建立新錶時將使用的預設儲存引擎

default

-storage-

engine

=myisam

# set the sql mode to strict

sql-

mode

="strict_trans_tables,no_auto_create_user,no_engine_substitution"

mysql儲存引擎 mysql儲存引擎簡介

精品推薦 什麼是儲存引擎 mysql儲存引擎是資料庫如何儲存資料 怎樣建立索引以及如何查詢更新資料等技術的實現方法,資料通過使用不同的技術儲存在檔案中,使用不同的儲存機制 索引方式來提供不同的功能。在mysql這種關係型資料中心來說,資料是以表的方式來儲存的,因此,簡單點來說,儲存引擎就是儲存和操作...

mysql個儲存引擎 MySQL儲存引擎

mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 儲存引擎 其實就是指定表如何儲存資料,如何為儲存的資料建立索引以及如何更新 查詢資料等技術實現的方法...

mysql儲存引擎模式 mysql儲存引擎

mysql資料庫的體系架構如下圖所示 從上圖中可以看出,mysql主要分為以下幾個元件 連線池元件 管理服務和工具元件 sql介面元件 分析器元件 優化器元件 緩衝元件 外掛程式式儲存引擎 物理檔案 一 儲存引擎 儲存引擎 其實就是指定 表 如何儲存資料,如何為儲存的資料 建立索引以及 如何更新,查...