MySQL讀書筆記 儲存引擎

2021-07-25 09:21:23 字數 1195 閱讀 9834

關於儲存引擎的細節,請參考官方文件。如果使用innodb引擎,建議閱讀官方手冊中的innodb事務模型和鎖一節。

通過engine欄位可以看出mysql.user表,是乙個myisam表,表中一些字段含義:

mysql從2023年開始提供了外掛程式式的儲存引擎api,從此湧出了一系列為不同目的而設計的儲存引擎。

percona的xtradb儲存引擎是基於innodb引擎的乙個改進版本,已經包含在percona server和mariadb中,它的改進點主要集中在效能,可測量性和操作靈活性方面。xtradb可以作為innodb的乙個完全的替代產品,甚至可以相容地讀寫innodb的資料檔案。

mysql預設是面向行的,每一行的資料是一起儲存的,伺服器的查詢也是以行為單位處理的。而在大資料量處理時,面向列的方式可能效率更高。如果不需要整行的資料,面向列的方式可以傳輸更少的資料。如果每一列都單獨儲存,那麼壓縮的效率也會更高。

有很多種方法可以將表的儲存引擎轉換成另外一種引擎。

alter

table mytable engine = innodb;

問題:需要執行很長時間。因為mysql會按行將資料從原表複製到一張新的表中,在複製期間可能會消耗系統所有的i/o能力,同時原表上會加上讀鎖。

create

table innodb_table like myisam_table;

alter

table innodb_table engine=innodb;

insert

into innodb_table select * from myisam_table;

如果資料量很大,則可以考慮分批處理,針對每一段資料執行事務提交操作,以避免大事務產生過多的undo。

start

transaction;

insert

into innodb_table select * from myisam_table where id between x and y;

commit;

0 踩

MySQL讀書筆記 儲存引擎

通過engine欄位可以看出mysql.user表,是乙個myisam表,表中一些字段含義 mysql從2007年開始提供了外掛程式式的儲存引擎api,從此湧出了一系列為不同目的而設計的儲存引擎。percona的xtradb儲存引擎是基於innodb引擎的乙個改進版本,已經包含在percona se...

MySQL讀書筆記(一)儲存引擎

mysql被設計為了乙個單程序多執行緒架構的資料庫。mysql啟動時會先去尋找配置檔案,找不到就按預設方式啟動。linux中是尋找my.cnf 檔案,windows上可能是.cnf或者是.ini。資料庫是檔案的集合,資料庫例項是程式,是用來對資料庫檔案操作的。mysql體系結構 mysql提供了一些...

MySQL讀書筆記 儲存引擎的選擇

1 mysql儲存引擎 和大多數資料庫不同,mysql資料庫是最重要的儲存引擎的概念,針對不同的儲存需求可以選擇不同的儲存引擎.2.1 myisam mysql的預設儲存引擎,不支援事務,也不支援外來鍵,其優勢是訪問速度快.myisam支援3種不同的儲存格式 靜態表,動態表,壓縮表.其中靜態表是預設...