這篇文章講述了mysql資料庫的儲存引擎,那麼不太了解mysql資料庫儲存引擎的同學和我們引擎來看看本篇關於mysql資料庫的儲存引擎所講述的文章吧!
優化結構介紹:
類型 | #意義 |
---|---|
儲存層 | 儲存引擎、欄位類型選擇、範式設計 |
設計層 | 索引、快取、分割(分錶) |
架構層 | 多個mysql伺服器設置,讀寫分離(主從模式) |
#sql語句層 | 多個sql語句都可以達到目的的情況下,要選擇效能高、速度快的sql語句 |
儲存引擎
儲存引擎:我們使用的資料是透過一定的技術儲存在資料庫當中的,資料庫的資料是以檔案形式儲存到硬碟當中的。技術不只一種,每種技術都有自己獨特的性能和功能體現。儲存資料的技術和其功能的合併就稱為「儲存引擎」。
在mysql中經常使用的儲存引擎:
Myisam
或Innodb
等等。-
資料庫的資料儲存在不同的儲存引擎裡邊,所有的特性就與目前的儲存引擎有一定關聯。 需依照專案的需求、特性選擇不同的儲存引擎。
查看mysql中支援的全部儲存引擎:
innodb
資料庫每個資料表的資料設計三個面向資訊:表格結構、資料、索引
技術特性:支援事務、行級鎖定、外鍵
#表格結構、資料、索引的實體儲存
#建立innodb資料表:
表格結構檔:
#該類型資料、索引的實體檔案位置:
所有innodb表的資料和索引資訊都儲存在以下ibdata1檔案中
給innodb類型表的資料和索引會建立自己對應的儲存空間:
預設情況下每個innodb表的資料和索引不會建立單獨的檔案儲存
設定變數,讓每個innodb表有獨特的資料和索引儲存檔案:
重新建立order2資料表:
此時order2資料表有單獨的資料和索引儲存檔案:
#後期無論innodb_file_per_table的設定狀態如何變化,order2的資料和索引都有獨立的儲存位置
資料儲存順序
#innodb表資料的儲存是依照主鍵的順序排列每個寫入的資料。
此特點決定了該類型表的寫入操作較慢。
事務、外鍵
此類型資料表支援事務、外鍵
#交易:http://blog.csdn.net/change_any_time /article/details/79488020
外鍵:兩個資料表A和B,B表的主鍵是A表的普通字段,在A表看這個普通的字段就是該表的“外鍵”,外鍵的使用有”約束”。
約束:以上兩個表,必須先寫B表的數據,再寫A表的數據,並且 A表的外鍵取值必須來之B表的主鍵id值,不能超過其範圍。
真實項目裡邊很少使用“外鍵”,因為有限制。
並發性
該類型表的並發性非常高,多人同時操作該資料表,為了操作資料表的時候,資料內容不會隨便發生變化,要對資訊進行「鎖定」
此類型鎖定等級為:行鎖。只鎖定被操作的目前記錄。
Myisam
結構、資料、索引獨立存儲,此類型的資料表 表結構、資料、索引都有獨立的儲存檔案:
建立Myisam資料表
每個myisam資料表的結構、資料、索引都有獨立的儲存檔案
表檔案類型 | 意義 |
---|---|
*.frm | |
# #表格結構檔 | |
*.MYD | 表格資料檔 |
特點:獨立的儲存檔案可以單獨備份、還原。
資料儲存順序
-
myisam表資料的儲存是按照自然順序排列每個寫入的資料。
此特點決定了該類型表的寫入操作較快。
並發性
此特點決定了該類型表的寫入操作較快。
壓縮機制
如果一個資料表的資料非常多,為了節省儲存空間,需要對該表進行壓縮處理。
複製目前資料表的資料:
# 不斷複製使得order3資料表的資料變成200多萬條:
對應的儲存該200萬個訊息的檔案的物理大小為40多兆:
開始壓縮order3資料表的資料
壓縮工具:myisampack.exe 表名
-
#重建索引:myisamchk.exe -rq 表名
解壓縮工具:myisamchk.exe –unpack 表名
-
##order3表資訊被壓縮的60%的空間:
#order3資料表有壓縮,但是索引沒有了:
重建索引:
#索引果然被重建完畢:
刷新資料表:flush table 表名
出現狀況:壓縮的資料表是唯讀表,不能寫資訊:
壓縮的資料表有特色:不能頻繁的寫入操作,只是內容固定的資料表可以做壓縮處理,例如(儲存全國地區資訊的資料表等)
解壓縮order3數據表,使得其可以寫入數據:(解壓縮同時索引自動重建)
資料解壓縮完畢:
執行flush操作,更新解壓縮後的資料:
flush table 表名;此操作會同時刪除order3.MYD.00996D46.deleted的壓縮備份檔案
此時允許將order3繼續寫入資料:
innodb儲存引擎:適合做修改、刪除
Archive
# Myisam儲存引擎:適合做查詢、寫入
memory
###內存型儲存引擎,操作速度非常快速,比較適合儲存臨時信息,伺服器斷電,給儲存引擎的資料立即遺失。 ###儲存引擎的選擇
Myisam和innodb
#網站大多數情況下「讀取和寫入」操作非常多,適合選擇Myisam類型(例如: dedecms 、phpcms內容管理系統(新聞網站)、discuz論壇)
網站對業務邏輯有一定要求(辦公室網站、商城)適合選擇innodb (Mysql5.5預設儲存引擎都是innodb)
以上是mysql資料庫的儲存引擎詳細講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

SublimeText3 Linux新版
SublimeText3 Linux最新版

SublimeText3漢化版
中文版,非常好用

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)