专栏电商日志财经减肥爱情
投稿投诉
爱情常识
搭配分娩
减肥两性
孕期塑形
财经教案
论文美文
日志体育
养生学堂
电商科学
头戴业界
专栏星座
用品音乐

MySQL基础入门MySQL的体系架构

  前言
  MySQL的版本众多,目前最新版本为MySQL8,考虑到实际的情况,MySQL系列文章将以CentOS7下MySQL5。7。32社区版本进行学习交流。下载地址:https:downloads。mysql。comarchivescommunity
  学习的过程中可以多参考官方文档,官方文档地址:
  https:dev。mysql。comdocrefman5。7en
  https:dev。mysql。comdocmysqlerrors5。7en
  MySQL基础入门:MySQL的体系架构大纲MySQL体系架构
  MySQL体系架构,自上往下大致可分为连接层、服务层、存储引擎层和系统文件层。
  MySQL体系架构图1。网络连接层
  客户端连接器(Connectors),负责与客户端打交道,提供与MySQL服务器建立连接的支持,目前几乎支持所有主流编程语言。例如:JDBC、。NET、Python、Ruby、VB等。
  连接层包括通信协议、线程处理、用户名密码认证3部分。
  MySQL链接示意图2。服务层
  主要包含系统管理和控制工具、连接池、SQL接口、解析器、查询优化器、缓存六大部分。系统管理和控制工具(ManagementServicesUtilities):提供如备份恢复、安全管理、集群管理等基础服务连接池(ConnectionPool):客户端每次与服务端建立连接都需要耗费大量的时间,而连接池就负责存储和管理客户端与数据库的连接,下次使用,直接从连接池中获取,提升服务器性能。可以通过下面免命令查看MySQL服务器连接池配置的最大连接数mysqlshowVARIABLESlikemaxconnections;VariablenameValuemaxconnections5001rowinset(0。00sec)SQL接口(SQLInterface):用于接受客户端发送的各种SQL命令,并且返回用户需要查询的结果。比如DML、DDL、存储过程、视图、触发器等解析器(Parser):SQL命令传递到解析器的时候会被解析器解析和验证将SQL语句按照语法规则分解成特定的数据结构(解析树),并将这个数据结构向后传递。经过解析器之后的SQL语句的传递和处理都是基于这个数据结构的。如果在解析过程中遇到错误,则说明这个SQL语句是不合法的查询优化器(Optimizer):SQL语句会在执行查询之前,进行一系列的优化,例如重写查询,决定表的读取顺序,以及选择需要的索引等,这个阶段客户是可以通过特定的命令查询到优化器是如果进行优化的,然后继续向后传递,交由存储引擎缓存(CacheBuffers):当然在执行查询之前,会判断是否开启缓存,如果开启还会检查当前SQL语句是否命中缓存,如果命中,则直接从缓存中获取数据,直接返回。这个缓存机制由一系列的小缓存构成。比如表缓存,记录缓存,key缓存,权限缓存等。mysqlshowvariableslikequerycachetype;VariablenameValuequerycachetypeOFF1rowinset(0。00sec)
  是否开启缓存,默认OFF关闭查询缓存,ON表示开启查询缓存,DEMAND表示用户自定义查询缓存。
  querycachetype只能配置在my。cnf文件中,无法直接通过命令开启或关闭缓存。在配置文件的〔mysqld〕下,增加配置:〔mysqld〕querycachetype1
  配置参数:
  0:关闭缓存
  1:开启缓存,但是默认缓存,放弃缓存需要增加sqlnocache提示SELECTsqlnocacheFROMtablenameWHEREid1;
  2:开启缓存,但是默认不缓存,执行缓存需要增加sqlcache提示SELECTsqlcacheFROMtablenameWHEREid1;
  缓存大小(单位:字节),默认值1Mmysqlshowvariableslikequerycachesize;VariablenameValuequerycachesize335544321rowinset(0。00sec)
  是否支持查询缓存:mysqlshowvariableslikehavequerycache;VariablenameValuehavequerycacheYES1rowinset(0。00sec)
  生产环境一般不建议开启。QueryCache严格要求2次SQL请求要完全一样,包括SQL语句,连接的数据库、协议版本、字符集等因素都会有影响。
  MySQL在其最新的8。0版本中,删除了查询缓存(QueryCache)区域,就此,MySQL的QueryCache彻底的退出了历史舞台。在5。7版本中,MySQL已经将QueryCache的选项(querycachetype)的缺省值设为了关闭,并在5。7。20版本中,将该配置标记为了Deprecated。3。存储引擎层
  数据库保存数据的核心技术,存储引擎服务于存储服务,是数据库中的底层套件,在创建表中使用,指定通过何种引擎存储数据,MySQLV5。1之后默认使用的存储引擎为InnoDB。不同的存储引擎有不同的存储机制,并且支持的功能也不相同。对于存储引擎的选择,基本上都是根据需求来定的。
  MySQL数据库区别于其他数据库的最重要的一个特点就是其插件式的表存储引擎。MySQL插件式的存储引擎架构提供了一系列标准的管理和服务支持,这些标准与存储引擎本身无关,可能是每个数据库系统本身都必需的,如SQL分析器和优化器等,而存储引擎是底层物理结构和实际文件读写的实现,每个存储引擎开发者可以按照自己的意愿来进行开发。需要特别注意的是,存储引擎是基于表的,而不是数据库。
  MySQL存储引擎概要InnoDB存储引擎
  InnoDB是MySQL的默认事务型引擎,也是最重要、使用最广泛的存储引擎。它被设计用来处理大量的短期(shortlived)事务,短期事务大部分情况是正常提交的,很少会被回滚。InnoDB的性能和自动崩溃恢复特性,使得它在非事务型存储的需求中也很流行。MyISAM存储引擎
  在MySQL5。1及之前的版本,MyISAM是默认的存储引擎。MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等,但是MyISAM不支持事务和行级锁,而且有一个致命的缺陷就是崩溃后无法安全恢复。
  尽管MyISAM引擎不支持事务、不支持崩溃后的安全恢复,但它绝不是一无是处的。对于只读的数据,或者表比较小、可以忍受修复(repair)操作,则依然可以继续使用MyISAM。
  除此之外,MyISAM对整张表加锁,而不是针对行。读取时会对需要读到的所有表加共享锁,写入时则对表加排他锁。所以,MyISAM很容易因为表锁的问题导致典型的的性能问题。MrgMyISAM存储引擎
  Merge存储引擎,也被称为MrgMyISAM引擎,是一组MyIsam表的集合,也就是说,他将MyIsam引擎的多个相同的表聚合起来,但是他的内部没有数据,真正的数据依然是MyIsam引擎的表中,但是可以直接进行查询、删除更新等操作。相同意味着所有表具有同样的列和索引信息。Archive存储引擎
  Archive存储引擎只支持INSERT和SELECT操作,且在MySQL5。1之前不支持索引。Archive引擎会缓存所有的写并利用zlib对插入的行进行压缩,所以比MyISAM表的磁盘IO更少。但是每次SELECT查询都需要执行全表扫描。所以Archive表适合日志和数据采集类应用,这类应用做数据分析时往往需要全表扫描。或者在一些需要更快速的INSERT操作的场合下也可以使用。Archive引擎不是一个事务型的引擎,而是一个针对高速插入和压缩做了优化的简单引擎。Blackhole存储引擎
  MySQL在5。x系列提供了Blackhole引擎黑洞。其作用正如其名字一样:任何写入到此引擎的数据均会被丢弃掉,不做实际存储,Select语句的内容永远是空。
  Blackhole虽然不存储数据,但是MySQL还是会正常的记录下Binlog(MySQL最重要的日志,主要用于主从复制和数据恢复)。所以可以用于复制数据到备库,或者只是简单地记录到日志。这种特殊的存储引擎可以在一些特殊的复制架构和日志审核时发挥作用。CSV存储引擎
  CSV引擎可以将普通的CSV文件(以逗号分割的文件)作为MySQL的表来处理,但是这种表不支持索引。CSV引擎可以在数据库运行时拷入或者拷出文件。可以将Excel等的数据存储为CSV文件,然后复制到MySQL数据目录下,就能在MySQL中打开使用。同样,如果将数据写人到一个CSV引擎表,其他的外部程序也能立即从表的数据文件中读取CSV格式的数据。因此CSV引擎可以作为一种数据交换的机制,非常有用。Federated存储引擎
  Federated引擎是访问其他MySQL服务器的一个代理,它会创建一个到远程MySQL服务器的客户端连接,并将查询传输到远程服务器执行,然后提取或者发送需要的数据(类似于Oracle的dblink)。
  当我们创建一个以Federated为存储引擎的表时,服务器在数据库目录只创建一个表定义文件。文件由表的名字开始,并有一个frm扩展名。无其它文件被创建,因为实际的数据在一个远程数据库上。这不同于为本地表工作的存储引擎的方式。Memory存储引擎
  Memory类型的表访问数据非常快,因为它的数据是存放在内存中的,并且默认使用HASH索引,但是一旦服务关闭,表中的数据就会丢失。
  Memory表至少比MyISAM表要快一个数量级,因为每个基于MEMORY存储引擎的表实际对应一个磁盘文件。该文件的文件名与表名相同,类型为frm类型。该文件中只存储表的结构。而其数据文件,都是存储在内存中,这样有利于数据的快速处理,提高整个表的效率,不需要进行磁盘IO。所以Memory表的结构在重启以后还会保留,但数据会丢失。
  Memroy表在很多场景可以发挥好的作用:用于查找(lookup)或者映射(mapping)表,例如将邮编和州名映射的表。用于缓存周期性聚合数据(periodicallyaggregateddata)的结果。用于保存数据分析中产生的中间数据。
  虽然Memory表的速度非常快,但还是无法取代传统的基于磁盘的表。Memroy表是表级锁,因此并发写入的性能较低。它不支持BLOB或TEXT类型的列,并且每行的长度是固定的,所以即使指定了VARCHAR列,实际存储时也会转换成CHAR,这可能导致部分内存的浪费。DNB集群引擎
  使用MySQL服务器、NDB集群存储引擎,以及分布式的、sharenothing的、容灾的、高可用的NDB数据库的组合,被称为MySQL集群((MySQLCluster)。
  常用存储引擎的选择和比较
  在使用MySQL数据库时,选择一个合适的存储引擎是一个非常复杂的问题。不同的存储引擎都有各自的特性、优势和使用的场合,正确的选择存储引擎可以提高应用的使用效率。
  下面介绍三种常用的存储引擎,它们对各种特性的支持如下表所示:
  特性
  MyISAM
  InnoDB
  MEMORY
  存储限制
  有
  支持
  有
  事务安全
  不支持
  支持
  不支持
  锁机制
  表锁
  行锁
  表锁
  B树索引
  支持
  支持
  支持
  哈希索引
  不支持
  不支持
  支持
  全文索引
  支持
  不支持
  不支持
  集群索引
  不支持
  支持
  不支持
  数据缓存
  支持
  支持
  索引缓存
  支持
  支持
  支持
  数据可压缩
  支持
  不支持
  不支持
  空间使用
  低
  高
  NA
  内存使用
  低
  高
  中等
  批量插入速度
  高
  低
  高
  支持外键
  不支持
  支持
  不支持
  最后,除非万不得已,否则建议不要混合使用多种存储引擎,否则可能带来一系列复杂的问题,以及一些潜在的bug和边界问题。存储引擎层和服务器层的交互已经比较复杂,更不用说混合多个存储引擎了。至少,混合存储对一致性备份和服务器参数配置都带来了一些困难。
  查看MySQL存储引擎
  可以通过如下命令查看当前MySQL数据库提供的存储引擎:showengines;
  MySQL提供的存储引擎
  查看MySQL当前默认的存储引擎:showvariableslikestorageengine;
  MySQL默认存储引擎(5。7。x)系统文件层
  系统文件层主要包括MySQL中存储数据的底层文件,与上层的存储引擎进行交互,是文件的物理存储层。其存储的文件主要有:日志文件、数据文件、配置文件、MySQL的进程pid文件和socket文件等。结束语
  你知道的越多,不知道的就越多。
  程序员的修养就是对技术发自内心的欣赏和敬畏!倘若文中表述有误,还请谅解,并欢迎与我讨论,自主思考永远比被动接受更有效!

工信部通报映客直播丁香医生等多款APP侵害用户权益中新经纬10月13日电工信部13日发布关于APP侵害用户权益整治回头看发现问题的通报。快看玩吧映客直播丁香医生YOWA云游戏等APP存在问题,涉及违规推送弹窗信息,APP强制频繁过今天我们来说说云控今天我们来说说云控,随着直播带货行业的兴起,抖音快手慢慢成为了行业的主流,那么云控就是专为短视频直播开发的一款软件,那么问题来了,抖音云控系统是什么?我们先要了解什么是云控,云控顾房贷利率降了,对购房者有啥影响来源人民网人民日报海外版江西省赣州市着力改善居民居住条件,完善学校农贸市场等住宅周边配套设施,让居民住上安心房。图为赣州市蓉江新区的一处住宅小区。胡江涛摄(人民视觉)今年,江苏省淮不断增发人民币会让钱越来越不值钱央行发布2022年前三季度金融统计数据报告,9月末,广义货币(M2)余额262。66万亿元,同比增长12。1,增速比上月末低0。1个百分点,比上年同期高3。8个百分点狭义货币(M1国际首次!我科学家拍摄到光生电荷转移演化全时空图像太阳能高效利用是洁净能源研究的科学圣杯。10月12日,自然在线发表了一项关于太阳能光催化研究的重要进展。通过综合集成多种可在时空尺度衔接的技术,中国科学院大连化学物理研究所李灿院士新能源黑马强势登场,预售仅18万,合创A06能火吗?原以为新能源车目前尚处于发展阶段,内卷的时间不会来得那么快。但现实是,20万左右的价位中,国产新能源车已经开始了全面内卷,深蓝SL03比亚迪海豹零跑C01就是很好的例子,从基础的空人民币超过美元,国际化进程势不可挡10月3日,据莫斯科交易所消息显示,人民币日交易量首次超过美国,成为俄罗斯第二大交易货币。当日,人民币卢布交易量为64900单,交易金额703亿卢布,而美元的成交量为29500单,多款数字人民币硬钱包亮相有产品圈粉近45万人近日,全国首张高校数字人民币校园卡硬钱包落地苏州,进一步拓展了数字人民币应用新渠道新载体新场景。记者注意到,数字人民币硬件钱包面向大众落地的脚步正在加快。据美团方面日前披露的数据显金地集团子公司购买1。64亿元公司债券北京商报讯(记者王寅浩)10月13日晚间,金地集团发布关于子公司首期市场化购买公司债券及资产支持证券的进展公告。公告显示,金地集团于2022年7月29日发布了关于子公司首期市场化购12位星二代大变样!任达华翁虹女儿颜值逆天,有人却遗憾长残能在娱乐圈里混出名堂的,外形上都不会差,哪怕先天条件不好,也能通过科技与狠活得到改善。但话又说回来,基因是骗不了人的,明星爸妈的真实颜值,从星二代们身上就能看出来了。1。任晴佳(1一首套马杆引起的山寨风波,深扒过后,我竟难分对错套马杆的汉子你威武雄壮,飞驰的骏马像疾风一样作为广场舞金曲的套马杆相信你一定不会陌生,朗朗上口的歌词,欢快而又明朗的旋律,让人聆听之时仿佛身在广袤无垠的大草原。套马杆火了之后,其背
又帅又能打李宁反伍2兵不厌诈篮球鞋测评球鞋故事球鞋名字的由来BADFIVE,名字源自街头篮球,BAD代表叛逆,FIVE代表篮球五个人,所以中文名译为反伍。李宁设计师孙明旭说过反伍系列的初心就是要打破传统意义上街球草根球李宁新品帽子像日本军帽,李宁算是栽了李宁最近的一次发布会上,李宁算是出尽了风头。但是这次不是因为李宁推出了什么很时尚的单品,也不是因为李宁推出了什么大胆创新的时尚新品。而是因为李宁的新品帽子很像是侵华日军戴的帽子,仔世界上12件最昂贵豪华的内衣,2亿级奢侈品,每个女生的梦想2014年1月11日,武汉一金店展示了一款黄金内衣套装,它具有精美的的外观,无论光线照射到哪里都会闪闪发光。这款华丽的内衣完全由黄金制成,重约3公斤黄金,由金店5名老工艺师花了大约张秋蓉打破常规做不被定义的自己创业故事服装它不仅具体的反应出了人们的生活形式和生活水平,而且形象的体现了人们思想意识形态和审美观念的转变和升华。从上个世纪50年代受苏联服饰影响的列宁装和中山装,60年代的蓝灰制网上说的do脸是什么意思?怎么用英语表达它?爱美之心,人皆有之!照镜子的那一刻,看见美美的自己心情必然是好不少。而现在,豁出去在自己脸上动刀子的人越来越多。我们也经常会听到do脸这个词。很多人第一次听到这个词的时候都会一头雾身材微胖的中年女人秋天怎么穿?孟晚舟的穿搭值得借鉴,优雅贵气女人一旦踏入了中年阶段之后,身材发福走样变形是非常自然的现象,所以说我们并不用感到太焦虑和过多的烦恼,应该坦然的面对,并且用正确的方法去解决,才能够释放出更迷人的气质。今天就要跟大19岁的安宥真,身高172厘米,一半都是腿?秀健壮长腿,完美比例19岁的韩国女星,女团IVE成员安宥真,展现了身高172厘米的身材,以健康充满力量感的大长腿,吸引了韩国网友们的目光。10月17日,有韩国媒体以标题IVE安宥真,酷酷的修长美腿,身办公楼前桂花开了夜晚橘黄的灯光下,我觉得自己嗅嗅这边嗅嗅那边的样子,像极了一只闻到美食的小狗。是空气中氤氲着的芬芳如蜜的桂花香,让我久久徘徊在这棵大桂花树旁,流连忘返。此刻我终于明白了为什么连续两深圳最长的湖绿道本月开通,连接四大公园,湖光山色,野趣横生作者喜爱的石岩湖及湿地公园陌上花公园俯仰之间青草排以及亚婆髻这些景点,将被一条长长的碧道连通。据悉,深圳石岩湖环湖碧道将在本月开通。石岩湖石岩湖环湖碧道长达30公里,是深圳最长的环46亿吨标准煤!国家能源局明确2025年国内能源年综合生产能力目标解放日报上观新闻特派记者朱珉迕张春海解放日报上观新闻记者王海燕王闲乐周程祎党的二十大新闻中心17日上午举行首场记者招待会,邀请国家发展改革委党组成员副主任赵辰昕,国家发展改革委党组2715!2418!篮网双星超级崛起,攻防兼备,杜兰特冲冠再添帮手布鲁克林篮网队最后两场季前赛打得很好,篮网大胜雄鹿,字母哥打到最后一分钟,雄鹿依然输球,西蒙斯防守字母哥,居然有奇效,杜兰特他们三巨头发挥都挺不错。面对4连胜森林狼,篮网打得气势如
友情链接:快好找快生活快百科快传网中准网文好找聚热点快软网