av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

MySQL之存儲(chǔ)引擎使用及說(shuō)明

瀏覽:134日期:2023-02-18 16:43:37
目錄
  • 一、mysql存儲(chǔ)引擎概述
    • 1.1 存儲(chǔ)引擎
    • 1.2 mysql支持的存儲(chǔ)引擎
  • 二、各種存儲(chǔ)引擎的特性
    • 三、各種搜索引擎介紹
      • 四、存儲(chǔ)引擎相關(guān)sql語(yǔ)句
        • 五、mysql的工作流程
          • 總結(jié)

            一、mysql存儲(chǔ)引擎概述

            1.1 存儲(chǔ)引擎

            MySQL中的數(shù)據(jù)用各種不同的技術(shù)存儲(chǔ)在文件(或者內(nèi)存)中。

            這些技術(shù)中的每一種技術(shù)都使用不同的存儲(chǔ)機(jī)制、索引技巧、鎖定水平并且最終提供廣泛的不同的功能和能力。

            通過(guò)選擇不同的技術(shù),你能夠獲得額外的速度或者功能,從而改善你的應(yīng)用的整體功能。

            例如,如果研究大量的臨時(shí)數(shù)據(jù),你也許需要使用內(nèi)存存儲(chǔ)引擎。內(nèi)存存儲(chǔ)引擎能夠在內(nèi)存中存儲(chǔ)所有的表格數(shù)據(jù)。

            這些不同的技術(shù)以及配套的相關(guān)功能在MySQL中被稱作存儲(chǔ)引擎(也稱作表類型)。

            MySQL默認(rèn)配置了許多不同的存儲(chǔ)引擎,可以預(yù)先設(shè)置或者在MySQL服務(wù)器中啟用。你可以選擇適用于服務(wù)器、數(shù)據(jù)庫(kù)和表格的存儲(chǔ)引擎,以便在選擇如何存儲(chǔ)你的信息、如何檢索這些信息以及你需要你的數(shù)據(jù)結(jié)合什么性能和功能的時(shí)候?yàn)槟闾峁┳畲蟮撵`活性。

            選擇如何存儲(chǔ)和檢索你的數(shù)據(jù)的這種靈活性是MySQL為什么如此受歡迎的主要原因。其它數(shù)據(jù)庫(kù)系統(tǒng) (包括大多數(shù)商業(yè)選擇)僅支持一種類型的數(shù)據(jù)存儲(chǔ) 。

            1.2 mysql支持的存儲(chǔ)引擎

            mysql5.6支持的存儲(chǔ)引擎包括

            • InnoDB
            • MyISAM
            • MEMORY
            • CSV
            • BLACKHOLE
            • FEDERATED
            • MRG_MYISAM
            • ARCHIVE
            • PERFORMANCE_SCHEMA
            • 其中NDB和InnoDB提供事務(wù)安全表,其他存儲(chǔ)引擎都是非事務(wù)安全表。

            二、各種存儲(chǔ)引擎的特性

            • 并發(fā)性:某些應(yīng)用程序比其他應(yīng)用程序具有很多的顆粒級(jí)鎖定要求(如行級(jí)鎖定)。
            • 事務(wù)支持:并非所有的應(yīng)用程序都需要事務(wù),但對(duì)的確需要事務(wù)的應(yīng)用程序來(lái)說(shuō),有著定義良好的需求,如ACID兼容等。
            • 引用完整性:通過(guò)DDL定義的外鍵,服務(wù)器需要強(qiáng)制保持關(guān)聯(lián)數(shù)據(jù)庫(kù)的引用完整性。
            • 物理存儲(chǔ):它包括各種各樣的事項(xiàng),從表和索引的總的頁(yè)大小,到存儲(chǔ)數(shù)據(jù)所需的格式,到物理磁盤(pán)。
            • 索引支持:不同的應(yīng)用程序傾向于采用不同的索引策略,每種存儲(chǔ)引擎通常有自己的編制索引方法,但某些索引方法(如B-tree索引)對(duì)幾乎所有的存儲(chǔ)引擎來(lái)說(shuō)是共同的。
            • 內(nèi)存高速緩沖:與其他應(yīng)用程序相比,不同的應(yīng)用程序?qū)δ承﹥?nèi)存高速緩沖策略的響應(yīng)更好,因此,盡管某些內(nèi)存高速緩沖對(duì)所有存儲(chǔ)引擎來(lái)說(shuō)是共同的(如用于用戶連接的高速緩沖,MySQL的高速查詢高速緩沖等),其他高速緩沖策略僅當(dāng)使用特殊的存儲(chǔ)引擎時(shí)才唯一定義。
            • 性能幫助:包括針對(duì)并行操作的多I/O線程,線程并發(fā)性,數(shù)據(jù)庫(kù)檢查點(diǎn),成批插入處理等。
            • 其他目標(biāo)特性:可能包括對(duì)地理空間操作的支持,對(duì)特定數(shù)據(jù)處理操作的安全限制等。

            三、各種搜索引擎介紹

            • InnoDB:MySql 5.6 版本默認(rèn)的存儲(chǔ)引擎。InnoDB 是一個(gè)事務(wù)安全的存儲(chǔ)引擎,它具備提交、回滾以及崩潰恢復(fù)的功能以保護(hù)用戶數(shù)據(jù)。InnoDB 的行級(jí)別鎖定以及 Oracle 風(fēng)格的一致性無(wú)鎖讀提升了它的多用戶并發(fā)數(shù)以及性能。InnoDB 將用戶數(shù)據(jù)存儲(chǔ)在聚集索引中以減少基于主鍵的普通查詢所帶來(lái)的 I/O 開(kāi)銷。為了保證數(shù)據(jù)的完整性,InnoDB 還支持外鍵約束。
            • MyISAM:MyISAM既不支持事務(wù)、也不支持外鍵、其優(yōu)勢(shì)是訪問(wèn)速度快,但是表級(jí)別的鎖定限制了它在讀寫(xiě)負(fù)載方面的性能,因此它經(jīng)常應(yīng)用于只讀或者以讀為主的數(shù)據(jù)場(chǎng)景。
            • Memory:在內(nèi)存中存儲(chǔ)所有數(shù)據(jù),應(yīng)用于對(duì)非關(guān)鍵數(shù)據(jù)由快速查找的場(chǎng)景。Memory類型的表訪問(wèn)數(shù)據(jù)非常快,因?yàn)樗臄?shù)據(jù)是存放在內(nèi)存中的,并且默認(rèn)使用HASH索引,但是一旦服務(wù)關(guān)閉,表中的數(shù)據(jù)就會(huì)丟失
            • BLACKHOLE:黑洞存儲(chǔ)引擎,類似于 Unix 的 /dev/null,Archive 只接收但卻并不保存數(shù)據(jù)。對(duì)這種引擎的表的查詢常常返回一個(gè)空集。這種表可以應(yīng)用于 DML 語(yǔ)句需要發(fā)送到從服務(wù)器,但主服務(wù)器并不會(huì)保留這種數(shù)據(jù)的備份的主從配置中。
            • CSV:它的表真的是以逗號(hào)分隔的文本文件。CSV 表允許你以 CSV 格式導(dǎo)入導(dǎo)出數(shù)據(jù),以相同的讀和寫(xiě)的格式和腳本和應(yīng)用交互數(shù)據(jù)。由于 CSV 表沒(méi)有索引,你最好是在普通操作中將數(shù)據(jù)放在 InnoDB 表里,只有在導(dǎo)入或?qū)С鲭A段使用一下 CSV 表。
            • NDB:(又名 NDBCLUSTER)——這種集群數(shù)據(jù)引擎尤其適合于需要最高程度的正常運(yùn)行時(shí)間和可用性的應(yīng)用。注意:NDB 存儲(chǔ)引擎在標(biāo)準(zhǔn) MySql 5.6 版本里并不被支持。目前能夠支持
            • MySql 集群的版本有:基于 MySql 5.1 的 MySQL Cluster NDB 7.1;基于 MySql 5.5 的 MySQL Cluster NDB 7.2;基于 MySql 5.6 的 MySQL Cluster NDB 7.3。同樣基于 MySql 5.6 的 MySQL Cluster NDB 7.4 目前正處于研發(fā)階段。
            • Merge:允許 MySql DBA 或開(kāi)發(fā)者將一系列相同的 MyISAM 表進(jìn)行分組,并把它們作為一個(gè)對(duì)象進(jìn)行引用。適用于超大規(guī)模數(shù)據(jù)場(chǎng)景,如數(shù)據(jù)倉(cāng)庫(kù)。
            • Federated:提供了從多個(gè)物理機(jī)上聯(lián)接不同的 MySql 服務(wù)器來(lái)創(chuàng)建一個(gè)邏輯數(shù)據(jù)庫(kù)的能力。適用于分布式或者數(shù)據(jù)市場(chǎng)的場(chǎng)景。
            • Example:這種存儲(chǔ)引擎用以保存闡明如何開(kāi)始寫(xiě)新的存儲(chǔ)引擎的 MySql 源碼的例子。它主要針對(duì)于有興趣的開(kāi)發(fā)人員。這種存儲(chǔ)引擎就是一個(gè)啥事也不做的 “存根”。你可以使用這種引擎創(chuàng)建表,但是你無(wú)法向其保存任何數(shù)據(jù),也無(wú)法從它們檢索任何索引。

            四、存儲(chǔ)引擎相關(guān)sql語(yǔ)句

            # 查看當(dāng)前的默認(rèn)存儲(chǔ)引擎:mysql> show variables like "default_storage_engine";# 查詢當(dāng)前數(shù)據(jù)庫(kù)支持的存儲(chǔ)引擎mysql> show engines \G;
            mysql> create table ai(id bigint(12),name varchar(200)) ENGINE=MyISAM; mysql> create table country(id int(4),cname varchar(50)) ENGINE=InnoDB;# 也可以使用alter table語(yǔ)句,修改一個(gè)已經(jīng)存在的表的存儲(chǔ)引擎。mysql> alter table ai engine = innodb;
            # my.ini文件[mysqld]default-storage-engine=INNODB

            五、mysql的工作流程

            MySQL架構(gòu)總共四層,在上圖中以虛線作為劃分。

            • 最上層的服務(wù)并不是MySQL獨(dú)有的,大多數(shù)給予網(wǎng)絡(luò)的客戶端/服務(wù)器的工具或者服務(wù)都有類似的架構(gòu)。比如:連接處理、授權(quán)認(rèn)證、安全等。
            • 第二層的架構(gòu)包括大多數(shù)的MySQL的核心服務(wù)。包括:查詢解析、分析、優(yōu)化、緩存以及所有的內(nèi)置函數(shù)(例如:日期、時(shí)間、數(shù)學(xué)和加密函數(shù))。同時(shí),所有的跨存儲(chǔ)引擎的功能都在這一層實(shí)現(xiàn):存儲(chǔ)過(guò)程、觸發(fā)器、視圖等。
            • 第三層包含了存儲(chǔ)引擎。存儲(chǔ)引擎負(fù)責(zé)MySQL中數(shù)據(jù)的存儲(chǔ)和提取。服務(wù)器通過(guò)API和存儲(chǔ)引擎進(jìn)行通信。這些接口屏蔽了不同存儲(chǔ)引擎之間的差異,使得這些差異對(duì)上層的查詢過(guò)程透明化。存儲(chǔ)引擎API包含十幾個(gè)底層函數(shù),用于執(zhí)行“開(kāi)始一個(gè)事務(wù)”等操作。但存儲(chǔ)引擎一般不會(huì)去解析SQL(InnoDB會(huì)解析外鍵定義,因?yàn)槠浔旧頉](méi)有實(shí)現(xiàn)該功能),不同存儲(chǔ)引擎之間也不會(huì)相互通信,而只是簡(jiǎn)單的響應(yīng)上層的服務(wù)器請(qǐng)求。
            • 第四層包含了文件系統(tǒng),所有的表結(jié)構(gòu)和數(shù)據(jù)以及用戶操作的日志最終還是以文件的形式存儲(chǔ)在硬盤(pán)上。

            總結(jié)

            以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持。

            標(biāo)簽: MySQL
            相關(guān)文章:
            主站蜘蛛池模板: 亚洲精品日韩一区二区电影 | 亚洲一区二区在线 | 亚洲在线一区二区 | 国产激情精品一区二区三区 | 国产成人精品午夜 | 亚洲一区二区电影网 | 99精品欧美一区二区蜜桃免费 | 日日操操 | 久色激情 | 国产精品国产三级国产aⅴ无密码 | 午夜一区二区三区在线观看 | 一区二区国产在线 | 99精品国产一区二区三区 | 91免费看片 | 国产免费一区二区三区 | 成人一级黄色毛片 | 最新日韩欧美 | 久久久久久天堂 | 亚洲欧美日韩精品 | 国产一区二区在线播放 | 日本一级淫片免费啪啪3 | 国产一级片一区二区 | 亚洲国产成人一区二区 | 日韩成人在线网站 | 亚洲精品国产a久久久久久 午夜影院网站 | 中文字幕第九页 | 久久国产精品免费一区二区三区 | 欧美h视频 | 欧美久久国产精品 | 国产欧美一区二区三区久久手机版 | 亚洲精品视频在线观看免费 | 亚洲一区二区三区视频免费观看 | 午夜丁香视频在线观看 | 99久久夜色精品国产亚洲96 | 亚洲视频区 | 成人午夜网站 | 精品国产一区二区三区久久影院 | 国产目拍亚洲精品99久久精品 | 欧美精品欧美精品系列 | 性色av一区| 日本特黄a级高清免费大片 国产精品久久性 |