范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

漫谈MySQL三存储引擎详解

  大家好,我是王老狮,Mysql存储引擎不管是在实际应用和面试中都是经常遇到的,那么我们该如何选择存储应请并且都有哪些存储引擎呢?今天我们一起聊一下mysql的存储引擎~一、存储引擎
  从体系结构图中可以发现,MySQL 数据库区别于其他数据库的最重要的一个 特点就是其插件式的表存储引擎。MySQL 插件式的存储引擎架构提供了一系列标 准的管理和服务支持,这些标准与存储引擎本身无关,可能是每个数据库系统本 身都必需的,如 SQL 分析器和优化器等,而存储引擎是底层物理结构和实际文件 读写的实现,每个存储引擎开发者可以按照自己的意愿来进行开发。需要特别注 意的是,存储引擎是基于表的,而不是数据库。
  插件式存储引擎的好处是,每个存储引擎都有各自的特点,能够根据具体的 应用建立不同存储引擎表。由于 MySQL 数据库的开源特性,用户可以根据 MySQL 预定义的存储引擎接口编写自己的存储引擎。若用户对某一种存储引擎的性能或 功能不满意,可以通过修改源码来得到想要的特性,这就是开源带给我们的方便 与力量。
  由于 MySQL 数据库开源特性,存储引擎可以分为 MySQL 官方存储引擎和第 三方存储引擎。有些第三方存储引擎很强大,如大名鼎鼎的 InnoDB 存储引擎(最 早是第三方存储引擎,后被 Oracle 收购) ,其应用就极其广泛,甚至是 MySQL 数 据库 OLTP(Online Transaction Processing 在线事务处理)应用中使用最广泛的存储 引擎。二、* MySQL官方引擎概要介绍InnoDB 存储引擎
  InnoDB 是 MySQL 的默认事务型引擎,也是最重要、使用最广泛的存储引擎。 它被设计用来处理大量的短期(short-lived)事务,短期事务大部分情况是正常提交 的,很少会被回滚。InnoDB 的性能和自动崩溃恢复特性,使得它在非事务型存 储的需求中也很流行。除非有非常特别的原因需要使用其他的存储引擎,否则应 该优先考虑 InnoDB 引擎。如果要学习存储引擎,InnoDB 也是一个非常好的值得
  花最多的时间去深入学习的对象,收益肯定比将时间平均花在每个存储引擎的学 习上要高得多。所以 InnoDB 引擎也将是我们学习的重点。MylSAM 存储引擎
  在 MySQL 5.1 及之前的版本,MyISAM 是默认的存储引擎。MyISAM 提供了 大量的特性,包括全文索引、压缩、空间函数(GIS)等,但 MyISAM 不支持事 务和行级锁,而且有一个毫无疑问的缺陷就是崩溃后无法安全恢复。尽管 MyISAM 引擎不支持事务、不支持崩溃后的安全恢复,但它绝不是一无是处的。对于只读 的数据,或者表比较小、可以忍受修复(repair)操作,则依然可以继续使用 MyISAM (但请不要默认使用 MyISAM ,而是应当默认使用 InnoDB) 。但是 MyISAM 对整 张表加锁,而不是针对行。读取时会对需要读到的所有表加共享锁,写入时则对 表加排他锁。MyISAM 很容易因为表锁的问题导致典型的的性能问题。Mrg_MylSAM
  Merge 存储引擎,是一组 MyIsam 的组合,也就是说,他将 MyIsam 引擎的 多个表聚合起来,但是他的内部没有数据,真正的数据依然是 MyIsam 引擎的表 中,但是可以直接进行查询、删除更新等操作。Archive 引擎
  Archive 存储引擎只支持 INSERT 和 SELECT 操作,在 MySQL 5.1 之前也不支持 索引。Archive 引擎会缓存所有的写并利用zlib 对插入的行进行压缩,所以比 MyISAM 表的磁盘 I/O 更少。但是每次 SELECT 查询都需要执行全表扫描。所以 Archive 表适合日志和数据采集类应用,这类应用做数据分析时往往需要全表扫 描。或者在一些需要更快速的 INSERT 操作的场合下也可以使用。Archive 引擎不 是一个事务型的引擎,而是一个针对高速插入和压缩做了优化的简单引擎。Blackhole 引擎
  Blackhole 引擎没有实现任何的存储机制,它会丢弃所有插入的数据,不做 任何保存。但是服务器会记录 Blackhole 表的日志,所以可以用于复制数据到备 库,或者只是简单地记录到日志。这种特殊的存储引擎可以在一些特殊的复制架 构和日志审核时发挥作用。但这种引擎在应用方式上有很多问题,因此并不推荐。CSV 引擎
  CSV 引擎可以将普通的 CSV 文件(逗号分割值的文件)作为 MySQL 的表来处
  理,但这种表不支持索引。CSV 引擎可以在数据库运行时拷入或者拷出文件。可 以将 Excel 等的数据存储为 CSV 文件,然后复制到 MySQL 数据目录下,就能在 MySQL 中打开使用。同样,如果将数据写入到一个 CSV 引擎表,其他的外部程 序也能立即从表的数据文件中读取 CSV 格式的数据。因此 CSV 引擎可以作为一 种数据交换的机制,非常有用。Federated 引擎
  Federated 引擎是访问其他 MySQL 服务器的一个代理,它会创建一个到远程 MySQL 服务器的客户端连接,并将查询传输到远程服务器执行,然后提取或者发 送需要的数据。最初设计该存储引擎是为了和企业级数据库如 Microsoft SQL Server 和 Oracle 的类似特性竞争的,可以说更多的是一种市场行为。尽管该引
  擎看起来提供了一种很好的跨服务器的灵活性,但也经常带来问题,因此默认是 禁用的。Memory 引擎
  如果需要快速地访问数据,并且这些数据不会被修改,重启以后丢失也没有 关系,那么使用 Memory 表(以前也叫做 HEAP 表)是非常有用的。Memory 表至 少比 MyISAM 表要快一个数量级,因为每个基于 MEMORY 存储引擎的表实际对 应一个磁盘文件。该文件的文件名与表名相同,类型为 frm 类型。该文件中只存 储表的结构。而其数据文件,都是存储在内存中,这样有利于数据的快速处理, 提高整个表的效率,不需要进行磁盘 I/O 。所以 Memory 表的结构在重启以后还 会保留,但数据会丢失。
  Memroy 表在很多场景可以发挥好的作用:
  用于查找(lookup)或者映射(mapping)表,例如将邮编和州名映射的表。 用于缓存周期性聚合数据(periodically aggregated data)的结果。
  用于保存数据分析中产生的中间数据。
  Memory 表支持 Hash 索引,因此查找操作非常快。虽然 Memory 表的速度 非常快,但还是无法取代传统的基于磁盘的表。Memroy 表是表级锁,因此并发 写入的性能较低。它不支持 BLOB 或 TEXT 类型的列,并且每行的长度是固定的, 所以即使指定了 VARCHAR 列,实际存储时也会转换成 CHAR ,这可能导致部分 内存的浪费。NDB 集群引擎
  使用 MySQL 服务器、NDB 集群存储引擎,以及分布式的、share-nothing 的、 容灾的、高可用的 NDB 数据库的组合,被称为 MySQL 集群((MySQL Cluster)。三、值得了解的第三方引擎Percona 的 XtraDB 存储引擎
  基于 InnoDB 引擎的一个改进版本,已经包含在 Percona Server 和 MariaDB 中,它的改进点主要集中在性能、可测量性和操作灵活性方面。XtraDB 可以作为 InnoDB 的一个完全的替代产品,甚至可以兼容地读写 InnoDB 的数据文件,并支 持 InnoDB 的所有查询。TokuDB 引擎
  使用了一种新的叫做分形树(Fractal Trees)的索引数据结构。该结构是缓存无 关的,因此即使其大小超过内存性能也不会下降,也就没有内存生命周期和碎片 的问题。TokuDB 是一种大数据(Big Data)存储引擎,因为其拥有很高的压缩比, 可以在很大的数据量上创建大量索引。现在该引擎也被 Percona 公司收购。
  Tips:分形树,是一种写优化的磁盘索引数据结构。 在一般情况下, 分形 树的写操作(Insert/Update/Delete)性能比较好,同时它还能保证读操作近似于 B+树的读性能。据测试结果显示, TokuDB 分形树的写性能优于 InnoDB 的 B+树, 读性能略低于 B+树。 分形树核心思想是利用节点的 MessageBuffer 缓存更新操作,充分利用数据局部性原理, 将随机写转换为顺序写,这样极大的提高了随机写的效率。Infobright
  MySQL 默认是面向行的,每一行的数据是一起存储的,服务器的查询也是以 行为单位处理的。而在大数据量处理时,面向列的方式可能效率更高,比如 HBASE 就是面向列存储的。
  Infobright 是最有名的面向列的存储引擎。在非常大的数据量(数十 TB)时, 该引擎工作良好。Infobright 是为数据分析和数据仓库应用设计的。数据高度压 缩,按照块进行排序,每个块都对应有一组元数据。在处理查询时,访问元数据 可决定跳过该块,甚至可能只需要元数据即可满足查询的需求。但该引擎不支持 索引,不过在这么大的数据量级,即使有索引也很难发挥作用,而且块结构也是 一种准索引 (quasi-index) 。Infobright 需要对 MySQL 服务器做定制,因为一些地 方需要修改以适应面向列存储的需要。如果查询无法在存储层使用面向列的模式 执行,则需要在服务器层转换成按行处理,这个过程会很慢。Infobright 有社区 版和商业版两个版本。其他
  针对图操作,全文检索,MySQL 下都有对应的存储引擎,大家可以自行查阅。四、 选择合适的引擎
  这么多存储引擎,我们怎么选择?大部分情况下,InnoDB 都是正确的选择, 所以在 MySQL 5.5 版本将 InnoDB 作为默认的存储引擎了。对于如何选择存储引 擎,可以简单地归纳为一句话:"除非需要用到某些 InnoDB 不具备的特性,并且 没有其他办法可以替代,否则都应该优先选择 InnoDB 引擎" 。比如,MySQL 中 只有 MyISAM 支持地理空间搜索。
  当然,如果不需要用到 InnoDB 的特性,同时其他引擎的特性能够更好地满 足需求,也可以考虑一下其他存储引擎。举个例子,如果不在乎可扩展能力和并 发能力,也不在乎崩溃后的数据丢失问题,却对 InnoDB 的空间占用过多比较敏 感,这种场合下选择 MyISAM 就比较合适。
  除非万不得已,否则建议不要混合使用多种存储引擎,否则可能带来一系列 复杂的问题,以及一些潜在的 bug 和边界问题。存储引擎层和服务器层的交互已 经比较复杂,更不用说混合多个存储引擎了。至少,混合存储对一致性备份和服 务器参数配置都带来了一些困难。五、表引擎的转换
  有很多种方法可以将表的存储引擎转换成另外一种引擎。每种方法都有其优 点和缺点。常用的有三种方法ALTER TABLE
  将表从一个引擎修改为另一个引擎最简单的办法是使用 ALTER TABLE 语句。 下面的语句将 mytable 的引擎修改为 InnoDB :mysql> ALTER TABLE mytable ENGINE = InnoDB;
  上述语法可以适用任何存储引擎。但需要执行很长时间,在实现上,MySQL 会按行将数据从原表复制到一张新的表中,在复制期间可能会消耗系统所有的 I/O 能力,同时原表上会加上读锁。所以,在繁忙的表上执行此操作要特别小心。
  如果转换表的存储引擎,将会失去和原引擎相关的所有特性。导出与导入
  还可以使用 mysqldump 工具将数据导出到文件,然后修改文件中 CREATE TABLE 语句的存储引擎选项,注意同时修改表名,因为同一个数据库中不能存在 相同的表名,即使它们使用的是不同的存储引擎。CREATE 和 SELECT
  先创建一个新的存储引擎的表,然后利用 INSERT…SELECT 语法来导数据:mysql>CREATE TABLE innodb_table LIKE myisam_table;  mysql>ALTER TABLE innodb_table ENGINE=InnoDB;  mysql>INSERT INTO innodb_table SELECT * FROM myisam_table;
  如果数据量很大,则可以考虑做分批处理,针对每一段数据执行事务提交操 作。六、检查我的MySQL 的引擎
  1、查看当前 MySQL 支持的存储引擎MariaDB [(none)]>  show engines;
  2、查看MySQL 当前默认的存储引擎MariaDB [(none)]>  show variables like "%storage_engine%";
  七、MyISAM 和InnoDB 比较
  作者:DarkKing
  链接:https://juejin.cn/post/7062300927574671373

10个月下跌1000元,12G256G65W,优质旗舰大跳水?作为手机的主要卖点,手机的性价比已经逐渐成为手机最主要的卖点。俗话说,货比三家。在现在这个手机性能已经普遍过载,产能过剩的今天,手机性能的门槛也逐渐降低了,人们可以用较低的价格购买合规中兴首先我反感用合规这个词来形容中兴,中兴没有违反法规,即使有违规也轮不到美国的法院来判!一转眼美国监管中兴合规已满五年,五年的时间足以改变一个企业!由于不符合美国的贸易政策,中兴成了巧用信息技术优化科学课堂摘要小学科学课程标准指出科学课程应立足于现实,面向未来。应拓展科学学习和运用的领域,注重跨学科的学习和现代科技手段的运用,使学生在不同内容和方法的相互交叉渗透和整合中开拓视野,提高有哪些最恐怖的心理实验?1950年代,美国心理学家哈里哈洛(HarryHarlow)为这项研究创建了自己的实验室,因为没有人愿意支持他,以及他进行这项实验的不道德方法。大多数人认为他的这个实验太过分了,他借助人工智能精确控制体内化学信号素提升我们人类感官的措施,如果可以系统化的精确控制达到可以无害化使用,那将是多么美好的时光!因为人类的感官设计实在太精妙了,我们误打误撞找到了提升这些感官的办法,难道只把他们当做毒品YK01全自动人脸识别智能锁面对它那一刻,彻底忘掉带钥匙的烦恼作为机械与电子相互结合而成的全新智能化家居产品,智能锁从一出现开始,就受到大众的广泛关注。其中,最受关注的是它不局限于机械钥匙开锁的单一方式,而是包含了指纹密码刷卡以及现在较为先进卖京东赚近800亿后,腾讯依然持有近万亿市值股票把京东集团(09618。HK)分拆出来直接分红给股东后,腾讯控股(00700。HK)账面上持有上市公司的市值,依然将近万亿元,这部分股权怎么处理,能不能带来持续收益也引发市场人士热找到黑匣子,离真相还有多远?昨天找到了黑匣子。有人问找到黑匣子,距离真相还有多远?现代大型客机上其实有两个黑匣子,分别是飞行数据记录仪(FDR)和舱音记录仪(CVR)。能制造FDR和CVR的厂家不止一个,美国被全网盛赞的天玑8100有什么缺点?文小伊评科技随着红米和真我接连发布两款搭载天玑8100处理器的手机,这枚联发科的次旗舰芯片受到了广泛的关注,势头一路上扬,甚至已经盖过了自家的旗舰U天玑9000。根据目前已知的一些张敏提升算法公平性不会降低准确性,二者可相互促进中新经纬3月24日电(王玉玲)近日,由中国人民大学高瓴人工智能学院智能社会治理跨学科交叉平台和基于大数据文科综合训练国家级虚拟仿真实验教学中心联合主办的算法公平性与内容生态建设研讨中兴通讯5GATG地空互联方案,打造民航互联空中高速公路中兴通讯在2021MWCS期间发布5GATG,在成熟标准5G陆地移动通信技术上进行创新,构建一张地空宽带立体覆盖网络,为后舱乘客提供机上娱乐机上办公定制等和地面4G5G网络无差异的
常州市金坛新城初具规模,高等级公路一条又一条,近日又添新地标常州市老年自行车骑游队每个月都有不同的集体骑游活动计划,12月份第一次集体骑游活动是游览金坛区的钱资湖,12月6日早7时,队长作了行前活动安全宣讲后,骑行队伍沿金武快速路辅道向金坛芝影SIM2优派投影机激光电视全线产品出列芝影(上海)科技有限公司分别于锦楠楼566和553房展出了SIM和优派的全线产品。进入566房间,首先看到被称为投影机中的法拉利,即SIM首款三色4K激光电视DominoDTV(见声杰音响MonitorAudioQUESTED多品牌展出声杰音响(苏州)有限公司于新锦江2楼荷花厅A厅和B厅展出了旗下代理的MonitorAudio(猛牌)和QUESTED(罗杰之声)等品牌和产品。MonitorAudio展厅的动态演示JVC于上海发布4款8K投影机新品,举行预售签单仪式9月24日下午,JVC于新锦江大酒店4楼白玉兰A厅举行了8K投影机新品发布会,正式推出全球首个48Gbps传输速率8K60p输入的家用影院投影机系列,包括DLAN118DLAN98苹果再出奇招,iPhone13非官方换屏将禁用FaceID,先保护好手机苹果一直注重产品生态的闭环,IOS系统的封闭性就已经可见一斑。而随着苹果生态的逐步强大,硬件闭环也成为苹果逐渐重视的一个方面。这也就导致很多第三方配件已经不能够满足苹果手机的维修。比iPhone13还香的手机来啦!iPhoneSE3再次成为焦点还有不到三天,万众期待的数码界盛会苹果秋季发布会就要正式拉开帷幕。这几天,有关iPhone13的各种爆料已经铺天盖地层出不穷。让大家觉得iPhone13的所有消息均已经被市场掌握,安卓和iOS的最佳融合体,一加9RT正式到来萝卜青菜各有所爱,我最不喜欢的手机就是凭借高配置低价格打动用户,但在手机品控上不用心的机型。无论什么数码产品配置和性价比,在我眼里都是次要的,最关键的还是拿到手上的手感和设计理念。微软英特尔怕不怕?苹果再发新品,14寸MacBookPro携M1X芯片来袭秋季的数码市场是苹果的主场,从iPhone13的大热开始,数码市场似乎已经没有哪款产品能够撼动苹果的主导地位。手机市场已经成为iPhone13和其他品牌手机争夺市场的重要场地。但无价格屠夫非浪得虚名,红米Note11让众多千元机型自愧不如很多人觉得千元机的入门配置就完全不能和旗舰机相提并论,无论是材料屏幕还是设计上,千元机作为新时代老年机的代表,也不配拥有更高端的品质。但红米Note11发布以后,我觉得大部分人的观全球首款AI稳定器,浩瀚V2掀起拍摄新浪潮随着短视频媒体创作成为很多人执业新方向,创作者们对手持稳定器的需求也日趋旺盛。选择一款趁手的兵器就成了很多创作者的首要任务,今天我们就推荐一款新鲜出炉的黑科技拍摄神器浩瀚V2AI稳iPhone13高度依然无法企及,国产厂商任重道远今天去附近的商场转了一圈,在不到500m的商场周围有当前所有主流手机体验店。因为今天不是假期,各大体验店还是门可罗雀。挨个转了一下,还是感受到国产厂商与苹果体验店的差距,现在将具体