搜尋
首頁資料庫mysql教程mysql資料庫的儲存引擎詳細講解
mysql資料庫的儲存引擎詳細講解Mar 14, 2018 am 10:27 AM
mysql資料庫詳細

這篇文章講述了mysql資料庫的儲存引擎,那麼不太了解mysql資料庫儲存引擎的同學和我們引擎來看看本篇關於mysql資料庫的儲存引擎所講述的文章吧!

優化結構介紹:

類型 #意義
儲存層 儲存引擎、欄位類型選擇、範式設計
設計層 索引、快取、分割(分錶)
架構 多個mysql伺服器設置,讀寫分離(主從模式)
#sql語句層 多個sql語句都可以達到目的的情況下,要選擇效能高、速度快的sql語句
#

儲存引擎

儲存引擎:我們使用的資料是透過一定的技術儲存在資料庫當中的,資料庫的資料是以檔案形式儲存到硬碟當中的。技術不只一種,每種技術都有自己獨特的性能和功能體現。儲存資料的技術和其功能的合併就稱為「儲存引擎」。

  • 在mysql中經常使用的儲存引擎:MyisamInnodb等等。

  • mysql資料庫的儲存引擎詳細講解

    資料庫的資料儲存在不同的儲存引擎裡邊,所有的特性就與目前的儲存引擎有一定關聯。 需依照專案的需求、特性選擇不同的儲存引擎。

  • 查看mysql中支援的全部儲存引擎:
    mysql資料庫的儲存引擎詳細講解

innodb

資料庫每個資料表的資料設計三個面向資訊:表格結構、資料、索引

  • 技術特性:支援事務、行級鎖定、外鍵

mysql資料庫的儲存引擎詳細講解

#表格結構、資料、索引的實體儲存

  • #建立innodb資料表:
    mysql資料庫的儲存引擎詳細講解

  • 表格結構檔:

mysql資料庫的儲存引擎詳細講解

#該類型資料、索引的實體檔案位置:

  • 所有innodb表的資料和索引資訊都儲存在以下ibdata1檔案中

mysql資料庫的儲存引擎詳細講解

給innodb類型表的資料和索引會建立自己對應的儲存空間:

  • 預設情況下每個innodb表的資料和索引不會建立單獨的檔案儲存

mysql資料庫的儲存引擎詳細講解

  • 設定變數,讓每個innodb表有獨特的資料和索引儲存檔案:

mysql資料庫的儲存引擎詳細講解

  • 重新建立order2資料表:

mysql資料庫的儲存引擎詳細講解

  • 此時order2資料表有單獨的資料和索引儲存檔案:

mysql資料庫的儲存引擎詳細講解

  • #後期無論innodb_file_per_table的設定狀態如何變化,order2的資料和索引都有獨立的儲存位置

資料儲存順序

  • #innodb表資料的儲存是依照主鍵的順序排列每個寫入的資料。

mysql資料庫的儲存引擎詳細講解

此特點決定了該類型表的寫入操作較慢。

事務、外鍵

此類型資料表支援事務、外鍵

  • #交易:http://blog.csdn.net/change_any_time /article/details/79488020

外鍵:兩個資料表A和B,B表的主鍵是A表的普通字段,在A表看這個普通的字段就是該表的“外鍵”,外鍵的使用有”約束”。
 約束:以上兩個表,必須先寫B表的數據,再寫A表的數據,並且 A表的外鍵取值必須來之B表的主鍵id值,不能超過其範圍。

  • 真實項目裡邊很少使用“外鍵”,因為有限制。

並發性

該類型表的並發性非常高,多人同時操作該資料表,為了操作資料表的時候,資料內容不會隨便發生變化,要對資訊進行「鎖定」
 此類型鎖定等級為:行鎖。只鎖定被操作的目前記錄。

Myisam

結構、資料、索引獨立存儲,此類型的資料表 表結構、資料、索引都有獨立的儲存檔案:

  • 建立Myisam資料表
    mysql資料庫的儲存引擎詳細講解

  • 每個myisam資料表的結構、資料、索引都有獨立的儲存檔案
    mysql資料庫的儲存引擎詳細講解

# #表格結構檔*.MYD*.MYI
表檔案類型 意義
*.frm

表格資料檔

#### ##表格索引檔案###############

特點:獨立的儲存檔案可以單獨備份、還原。

資料儲存順序

  • myisam表資料的儲存是按照自然順序排列每個寫入的資料。
    mysql資料庫的儲存引擎詳細講解

    此特點決定了該類型表的寫入操作較快。

並發性

此特點決定了該類型表的寫入操作較快。

壓縮機制

如果一個資料表的資料非常多,為了節省儲存空間,需要對該表進行壓縮處理。

  • 複製目前資料表的資料:
    mysql資料庫的儲存引擎詳細講解

  • # 不斷複製使得order3資料表的資料變成200多萬條:
    mysql資料庫的儲存引擎詳細講解

  • 對應的儲存該200萬個訊息的檔案的物理大小為40多兆:
    mysql資料庫的儲存引擎詳細講解

開始壓縮order3資料表的資料

  • 壓縮工具:myisampack.exe  表名
    mysql資料庫的儲存引擎詳細講解

  • #重建索引:myisamchk.exe  -rq  表名
    mysql資料庫的儲存引擎詳細講解

  • 解壓縮工具:myisamchk.exe  –unpack  表名
    mysql資料庫的儲存引擎詳細講解


  • mysql資料庫的儲存引擎詳細講解##order3表資訊被壓縮的60%的空間:


  • mysql資料庫的儲存引擎詳細講解#order3資料表有壓縮,但是索引沒有了:


  • mysql資料庫的儲存引擎詳細講解 重建索引:


  • mysql資料庫的儲存引擎詳細講解#索引果然被重建完畢:


  • mysql資料庫的儲存引擎詳細講解刷新資料表:flush table  表名


  • mysql資料庫的儲存引擎詳細講解出現狀況:壓縮的資料表是唯讀表,不能寫資訊:



壓縮的資料表有特色:不能頻繁的寫入操作,只是內容固定的資料表可以做壓縮處理,例如(儲存全國地區資訊的資料表等)

如果必須要寫數據:就解壓縮該數據表,寫入數據,再壓縮

  • mysql資料庫的儲存引擎詳細講解解壓縮order3數據表,使得其可以寫入數據:(解壓縮同時索引自動重建)


  • mysql資料庫的儲存引擎詳細講解資料解壓縮完畢:

  • 執行flush操作,更新解壓縮後的資料:
    flush table  表名mysql資料庫的儲存引擎詳細講解;此操作會同時刪除order3.MYD.00996D46.deleted的壓縮備份檔案


  • mysql資料庫的儲存引擎詳細講解此時允許將order3繼續寫入資料:



innodb儲存引擎:適合做修改、刪除 

 Myisam儲存引擎:適合用來做查詢、寫入

Archive

#innodb儲存引擎:適合做修改、刪除  

# Myisam儲存引擎:適合做查詢、寫入

memory

###內存型儲存引擎,操作速度非常快速,比較適合儲存臨時信息,伺服器斷電,給儲存引擎的資料立即遺失。 ###

儲存引擎的選擇

Myisam和innodb

  1. #網站大多數情況下「讀取和寫入」操作非常多,適合選擇Myisam類型(例如: dedecms 、phpcms內容管理系統(新聞網站)、discuz論壇)

  2. 網站對業務邏輯有一定要求(辦公室網站、商城)適合選擇innodb (Mysql5.5預設儲存引擎都是innodb)



#

以上是mysql資料庫的儲存引擎詳細講解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
图文详解mysql架构原理图文详解mysql架构原理May 17, 2022 pm 05:54 PM

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

mysql怎么替换换行符mysql怎么替换换行符Apr 18, 2022 pm 03:14 PM

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

mysql怎么去掉第一个字符mysql怎么去掉第一个字符May 19, 2022 am 10:21 AM

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

mysql的msi与zip版本有什么区别mysql的msi与zip版本有什么区别May 16, 2022 pm 04:33 PM

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

mysql怎么将varchar转换为int类型mysql怎么将varchar转换为int类型May 12, 2022 pm 04:51 PM

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

MySQL复制技术之异步复制和半同步复制MySQL复制技术之异步复制和半同步复制Apr 25, 2022 pm 07:21 PM

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

带你把MySQL索引吃透了带你把MySQL索引吃透了Apr 22, 2022 am 11:48 AM

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

mysql怎么判断是否是数字类型mysql怎么判断是否是数字类型May 16, 2022 am 10:09 AM

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

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

Safe Exam Browser

Safe Exam Browser

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

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3 Mac版

SublimeText3 Mac版

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