电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

MySQL之存儲引擎使用及說明

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

            一、mysql存儲引擎概述

            1.1 存儲引擎

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

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

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

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

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

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

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

            1.2 mysql支持的存儲引擎

            mysql5.6支持的存儲引擎包括

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

            二、各種存儲引擎的特性

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

            三、各種搜索引擎介紹

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

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

            # 查看當(dāng)前的默認(rèn)存儲引擎:mysql> show variables like "default_storage_engine";# 查詢當(dāng)前數(shù)據(jù)庫支持的存儲引擎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語句,修改一個(gè)已經(jīng)存在的表的存儲引擎。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í),所有的跨存儲引擎的功能都在這一層實(shí)現(xiàn):存儲過程、觸發(fā)器、視圖等。
            • 第三層包含了存儲引擎。存儲引擎負(fù)責(zé)MySQL中數(shù)據(jù)的存儲和提取。服務(wù)器通過API和存儲引擎進(jìn)行通信。這些接口屏蔽了不同存儲引擎之間的差異,使得這些差異對上層的查詢過程透明化。存儲引擎API包含十幾個(gè)底層函數(shù),用于執(zhí)行“開始一個(gè)事務(wù)”等操作。但存儲引擎一般不會去解析SQL(InnoDB會解析外鍵定義,因?yàn)槠浔旧頉]有實(shí)現(xiàn)該功能),不同存儲引擎之間也不會相互通信,而只是簡單的響應(yīng)上層的服務(wù)器請求。
            • 第四層包含了文件系統(tǒng),所有的表結(jié)構(gòu)和數(shù)據(jù)以及用戶操作的日志最終還是以文件的形式存儲在硬盤上。

            總結(jié)

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

            標(biāo)簽: MySQL
            相關(guān)文章:
            主站蜘蛛池模板: 手术室净化厂家_成都实验室装修公司_无尘车间施工单位_洁净室工程建设团队-四川华锐16年行业经验 | 膜结构停车棚-自行车棚-膜结构汽车棚加工安装厂家幸福膜结构 | 一体化污水处理设备,一体化污水设备厂家-宜兴市福源水处理设备有限公司 | 中式装修设计_室内中式装修_【云臻轩】中式设计机构 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 防水套管|柔性防水套管|伸缩器|伸缩接头|传力接头-河南伟创管道 防水套管_柔性防水套管_刚性防水套管-巩义市润达管道设备制造有限公司 | 【365公司转让网】公司求购|转让|资质买卖_股权转让交易平台 | 砂磨机_立式纳米砂磨机_实验室砂磨机-广州儒佳化工设备厂家 | 包塑软管|金属软管|包塑金属软管-闵彬管业 | 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 | 陶瓷加热器,履带式加热器-吴江市兴达电热设备厂 | 柔性输送线|柔性链板|齿形链-上海赫勒输送设备有限公司首页[输送机] | 变位机,焊接变位机,焊接变位器,小型变位机,小型焊接变位机-济南上弘机电设备有限公司 | 北京西风东韵品牌与包装设计公司,创造视觉销售力! | 能量回馈_制动单元_电梯节能_能耗制动_深圳市合兴加能科技有限公司 | 耳模扫描仪-定制耳机设计软件-DLP打印机-asiga打印机-fitshape「飞特西普」 | 粘弹体防腐胶带,聚丙烯防腐胶带-全民塑胶 | 高博医疗集团上海阿特蒙医院 | 山东商品混凝土搅拌楼-环保型搅拌站-拌合站-分体仓-搅拌机厂家-天宇 | 水平筛厂家-三轴椭圆水平振动筛-泥沙震动筛设备_山东奥凯诺矿机 包装设计公司,产品包装设计|包装制作,包装盒定制厂家-汇包装【官方网站】 | 合肥废气治理设备_安徽除尘设备_工业废气处理设备厂家-盈凯环保 合肥防火门窗/隔断_合肥防火卷帘门厂家_安徽耐火窗_良万消防设备有限公司 | 高低温万能试验机-复合材料万能试验机-馥勒仪器 | 不锈钢水箱生产厂家_消防水箱生产厂家-河南联固供水设备有限公司 | 医疗仪器模块 健康一体机 多参数监护仪 智慧医疗仪器方案定制 血氧监护 心电监护 -朗锐慧康 | 企业VI设计_LOGO设计公司_品牌商标设计_【北京美研】 | 圈酒招商网【jiushuitv.com】_酒水招商_代理_加盟平台 | 带压开孔_带压堵漏_带压封堵-菏泽金升管道工程有限公司 | 苏州同创电子有限公司 - 四探针测试仪源头厂家 | 找培训机构_找学习课程_励普教育 | 球磨机 选矿球磨机 棒磨机 浮选机 分级机 选矿设备厂家 | 柔性输送线|柔性链板|齿形链-上海赫勒输送设备有限公司首页[输送机] | 超声波乳化机-超声波分散机|仪-超声波萃取仪-超声波均质机-精浩机械|首页 | 布袋除尘器|除尘器设备|除尘布袋|除尘设备_诺和环保设备 | 卓能JOINTLEAN端子连接器厂家-专业提供PCB接线端子|轨道式端子|重载连接器|欧式连接器等电气连接产品和服务 | 活性炭厂家-蜂窝活性炭-粉状/柱状/果壳/椰壳活性炭-大千净化-活性炭 | 杭州中央空调维修_冷却塔/新风机柜/热水器/锅炉除垢清洗_除垢剂_风机盘管_冷凝器清洗-杭州亿诺能源有限公司 | 铣床|万能铣床|立式铣床|数控铣床|山东滕州万友机床有限公司 | 干粉砂浆设备-干粉砂浆生产线-干混-石膏-保温砂浆设备生产线-腻子粉设备厂家-国恒机械 | 浴室柜-浴室镜厂家-YINAISI · 意大利设计师品牌 | 咿耐斯 |-浙江台州市丰源卫浴有限公司 | 数字展示在线_数字展示行业门户网站| 智能家居全屋智能系统多少钱一套-小米全套价格、装修方案 |