mysql數據庫的存儲引擎詳細講解
發表時間:2023-07-13 來源:明輝站整理相關軟件相關文章人氣:
[摘要]本篇文章講述了mysql數據庫的存儲引擎,那么不太了解mysql數據庫存儲引擎的同學和我們引擎來看看本篇關于mysql數據庫的存儲引擎講述的文章吧!優化結構介紹:類型含義存儲層存儲引擎、字段類型選擇...
本篇文章講述了
mysql數據庫的存儲引擎,那么不太了解mysql數據庫存儲引擎的同學和我們引擎來看看本篇關于mysql數據庫的存儲引擎講述的文章吧!
優化結構介紹:
類型 | 含義 |
---|
存儲層 | 存儲引擎、字段類型選擇、范式設計 |
設計層 | 索引、緩存、分區(分表) |
架構層 | 多個mysql服務器設置,讀寫分離(主從模式) |
sql語句層 | 多個sql語句都可以達到目的的情況下,要選擇性能高、速度快的sql語句 |
存儲引擎
存儲引擎:我們使用的數據是通過一定的技術存儲在數據庫當中的,數據庫的數據是以文件形式存儲到硬盤當中的。技術不只一種,并且每種技術有自己獨特的性能和功能體現。存儲數據的技術和其功能的合并就稱為“存儲引擎”。
innodb
數據庫每個數據表的數據設計三方面信息:表結構、數據、索引

表結構、數據、索引的物理存儲
創建一個innodb數據表:

表結構文件:

該類型 數據、索引 的物理文件位置:

給innodb類型表 的數據和索引創建自己對應的存儲空間:




數據存儲順序

該特點決定了該類型表的寫入操作較慢。
事務、外鍵
該類型數據表支持事務、外鍵
外鍵:兩個數據表A和B,B表的主鍵是A表的普通字段,在A表看這個普通的字段就是該表的“外鍵”,外鍵的使用有”約束”。
約束:以上兩個表,必須先寫B表的數據,再寫A表的數據,并且 A表的外鍵取值必須來之B表的主鍵id值,不能超過其范圍。
并發性
該類型表的并發性非常高,多人同時操作該數據表,為了操作數據表的時候,數據內容不會隨便發生變化,要對信息進行“鎖定”
該類型鎖定級別為:行鎖。只鎖定被操作的當前記錄。
Myisam
結構、數據、索引獨立存儲 ,該類型的數據表 表結構、數據、索引 都有獨立的存儲文件:
表文件類型 | 含義 |
---|
*.frm | 表結構文件 |
*.MYD | 表數據文件 |
*.MYI | 表索引文件 |
特點:獨立的存儲文件可以單獨備份、還原。
數據存儲順序
并發性
該特點決定了該類型表的寫入操作較快。
壓縮機制
如果一個數據表的數據非常多,為了節省存儲空間,需要對該表進行壓縮處理。
開始壓縮order3數據表的數據
壓縮的數據表有特點:不能頻繁的寫入操作,只是內容固定的數據表可以做壓縮處理,例如(存儲全國地區信息的數據表等)
如果必須要寫數據:就解壓該數據表,寫入數據,再壓縮
innodb存儲引擎:適合做修改、刪除
Myisam存儲引擎:適合做查詢、寫入
Archive
innodb存儲引擎:適合做修改、刪除
Myisam存儲引擎:適合做查詢、寫入
memory
內存型存儲引擎,操作速度非常快速,比較適合存儲臨時信息,服務器斷電,給存儲引擎的數據立即丟失。
存儲引擎的選擇
Myisam和innodb
網站大多數情況下“讀和寫”操作非常多,適合選擇Myisam類型(例如: dedecms、phpcms內容管理系統(新聞網站)、discuz論壇)
網站對業務邏輯有一定要求(辦公網站、商城)適合選擇innodb (Mysql5.5默認存儲引擎都是innodb)
以上就是mysql數據庫的存儲引擎詳細講解的詳細內容,更多請關注php中文網其它相關文章!
學習教程快速掌握從入門到精通的SQL知識。