MySQL运维实战(4.1) MySQL表存储引擎

作者:俊达

MySQL表的特点

MySQL是一种开源的关系型数据库管理系统,与Oracle、SQL Server等数据库相比,有两个关键的特点:

  • 存储引擎灵活性: MySQL的插件式存储引擎使得用户可以根据具体需求选择不同的引擎,即在同一个数据库中的不同表可以使用不同的存储引擎。存储引擎决定了表的物理存储格式,包括数据的组织方式、索引的结构等,表也可以在不同的存储引擎之间转换。而其他一些数据库可能较为固定或仅支持特定的存储引擎。
  • sql_mode的影响: MySQL的sql_mode参数影响SQL语句的执行方式。它定义了MySQL对SQL语句的解释和执行规则,同一个SQL语句在不同的sql_mode下可能会有不同的执行结果。sql_mode可以控制MySQL的行为。

表的存储引擎

MySQL支持插件式存储引擎。系统默认支持多种存储引擎。同时提供了接口,支持第三方开发存储引擎,以满足特定的数据存储需求。
oracle mysql官方存储引擎
使用show storage engines命令或查询information_schema.engines表查看当前实例支持的存储引擎。

mysql> select engine, support, transactions, xa, savepoints from information_schema.engines;
+--------------------+---------+--------------+------+------------+
| engine             | support | transactions | xa   | savepoints |
+--------------------+---------+--------------+------+------------+
| InnoDB             | DEFAULT | YES          | YES  | YES        |
| MRG_MYISAM         | YES     | NO           | NO   | NO         |
| MEMORY             | YES     | NO           | NO   | NO         |
| BLACKHOLE          | YES     | NO           | NO   | NO         |
| MyISAM             | YES     | NO           | NO   | NO         |
| CSV                | YES     | NO           | NO   | NO         |
| ARCHIVE            | YES     | NO           | NO   | NO         |
| PERFORMANCE_SCHEMA | YES     | NO           | NO   | NO         |
| FEDERATED          | NO      | NULL         | NULL | NULL  

各存储引擎特点

存储引擎特点
InnoDB支持事物。
支持MVCC多版本。并发读写性能高。
MyISAM早期版本的默认存储引擎。
不支持事物。
mysql实例或所在主机异常crash的情况下,可能会有数据丢失
表容易crash,需要修复。大表修复耗时可能会很长。
mysql的一些系统表是myisam存储引擎
索引数据在mysql内部缓存,受参数key_buffer_size控制
数据由OS文件系统的Page Cache缓存。
MRG_MYISAM本身不存储数据,可以将多个MyISAM表模拟成一个单独的表使用。
方便历史数据清理归档。
Memory数据存储在内存中,实例重启会清空数据。
mysql一些内部表使用了memory引擎。
业务上要避免使用memor存储引擎。
在主备复制架构下,主库或备库重启,容易引起主备复制中断。
每个表可存储的数据受参数max_heap_table_size控制
CSVcsv文件格式。
外部csv文件可以通过csv表挂到mysql中,用于数据分析。
不支持索引。
mysql slow log可以以csv格式存储,便于数据采集和分析。
Blackhole不存储数据。
Archive归档存储。不支持索引。
PERFORMANCE_SCHEMAmysql系统内部表。
Federated本身不存储数据。从其他数据库实例获取数据。类似oracle的db link。

绝大部分情况下,建议业务统一使用InnoDB存储引擎。mysql 5.7开始默认存储引擎就是innodb。

第三方存储引擎
在 MySQL 社区中有一些第三方存储引擎,它们在特定的使用场景下可能具有一些优势:

  1. TokuDB: 以支持高度压缩为特点,能够在高度压缩数据的同时,快速执行插入和查询操作,一般适用于需要处理大量数据并希望减小存储空间占用的场景。
  2. LevelDB :基于 LSM Tree (log structured merge tree)结构的存储引擎。能够提供高性能的随机写入,并在后台使用多层次的存储结构进行数据的排序和合并,适用于需要高吞吐量和对写入性能要求较高的场景。
  3. MyRocks:基于 RocksDB 的 MySQL 存储引擎,同样使用了 LSM Tree (log structured merge tree)结构。它专注于优化写入性能和存储效率,适用于大规模写入的场景。

在实际的应用当中,应该基于需求,结合具体场景来选择最为合适的存储引擎,从而更好的优化数据库性能。值得注意的是,使用第三方存储引擎可能需要谨慎考虑,因为它们可能不同于 MySQL 默认的 InnoDB 存储引擎,可能需要特定的配置和调优。

更多技术信息请查看云掣官网https://yunche.pro/?t=yrgw

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/624067.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

互联网今年都崩盘了gis开发还有前途嘛?

互联网和GIS其实分不开的,尤其是在新兴技术领域。 互联网行业都已经在进军测绘、GIS以及智慧城市、无人驾驶等行业,随着高新技术的发展,互联网和GIS其实结合会越来越紧密。 传统互联网行业已经不能满足大众需求,近十年&#xff…

安装LibreOffice 解决soffice command was not found. Please install libreoffice

速览 1.安装原因1.准备文件1.1下载文件1.2解压文件 2.安装文件3.尝试运行3.1环境变量配置3.2安装附加依赖libxinerama13.3安装附加依赖libcairo23.4安装附加依赖libxt6 4.命令安装好像不行 1.安装原因 在使用LangChain框架时产生错误: soffice command was not fo…

TypeScript基础知识:模块化和命名空间

在现代的软件开发中,模块化和命名空间是构建可维护、可扩展和可重用代码的关键概念。TypeScript 提供了强大的支持来帮助我们组织和管理代码,本文将深入探讨 TypeScript 中的模块化和命名空间,并提供示例代码来帮助读者更好地理解这些概念。 …

如何应对Android面试官->我用RecyclerView实现了吸顶效果

前言 RecyclerView 计划用两个章节来讲解,今天主要是以 itemDecoration 和 实现吸顶效果为主; ItemDecoration ItemDecoration 允许应用给具体的 View 添加具体的图画或者 Layout 的偏移,对于绘制 View 之间的分割线,视觉分组边…

用bat脚本执行py文件以及批量执行py文件(全网超详细)

1.前言 对于python代码,每次执行一个文件就要运行一个命令,太过麻烦 在Windows电脑上,想一次性执行多个python文件的代码,就需要用到bat脚本 2.python代码 先写几个python代码的文件 如下图 3.py文件为中文,用bat执…

如何使用CFImagehost结合内网穿透搭建私人图床并无公网ip远程访问

[TOC] 推荐一个人工智能学习网站点击跳转 1.前言 图片服务器也称作图床,可以说是互联网存储中最重要的应用之一,不仅网站需要图床提供的外链调取图片,个人或企业也用图床存储各种图片,方便随时访问查看。不过由于图床很不挣钱&a…

CentOS中如何让新建用户拥有root权限

adduser newuser 新建用户newuser passwd newuser 设置密码 New UNIX password: Retype new UNIX password: 成功创建用户密码 passwd: all authentication tokens updated successfully. 2、赋予root权限 方法一: 修改 /etc/sudoers 文件,找…

WordPiece和SentencePiece区别

BERT(Bidirectional Encoder Representations from Transformers)模型的分词器通常使用子词级别的分词方法,其中最常用的分词器包括 WordPiece 和 SentencePiece。这些分词器用于将文本分成子词(subwords)或标记&#…

腾讯云价格计算器怎么用?太简单了一键报价

腾讯云服务器价格计算器可以一键计算出云服务器的精准报价,包括CVM实例规格价格、CPU内存费用、公网带宽收费、存储系统盘和数据盘详细费用,腾讯云百科txybk.com分享腾讯云价格计算器链接入口、使用方法说明: 腾讯云服务器价格计算器 打开腾…

❤ React报错问题分析

❤ React报错问题分析 ❤️ You passed a second argument to root.render(…) but it only accepts one argument. You passed a second argument to root.render(…) but it only accepts one argument. react-dom.development.js:86 Warning: You passed a second argumen…

css 居中方式

居中分为水平居中和垂直居中

医院患者满意度调查指标设计

医院患者满意度调查指标的设计是确保调查能够准确反映患者体验和医院服务质量的关键步骤。以下是一些常见的医院患者满意度调查指标,可以根据特定需求和目标进行定制: 整体满意度:通过一个综合评分或问卷问题来评估患者对整体医院体验的满意…

js对象和数组的区别

在JavaScript中,对象(Object)和数组(Array)是两种不同的数据结构,它们有着不同的用途和特性。 对象(Object): 定义形式:对象是由键值对组成的,每个…

C++ 数组分页,经常有用到分页,索性做一个简单封装 已解决

在项目设计中, 有鼠标滑动需求,但是只能说能力有限,索性使用 php版本的数组分页,解决问题。 经常有用到分页,索性做一个简单封装、 测试用例 QTime curtime QTime::currentTime();nHour curtime.hour();nMin curtim…

各种排序算法学习笔记

Docshttps://r0dhfl3ujy9.feishu.cn/docx/XFlEdnqv9oCEoVx7ok8cpc4knnf?fromfrom_copylink如果你认为有错误,欢迎指出!

Three.js 镜面反射Reflector 为MeshStandardMaterial增加Reflector能力

效果效果官方案例 区别:官方的案例更像一个镜子 没有纹理等属性 也没有透明度修改 根据源码进行修改为 MeshStandardMaterial实现反射 使用案例 createReflector() {const plane this.helper.create.plane(2, 2);this.helper.add(plane.mesh);plane.mesh.rotat…

juniper EX系列交换机POE配置

PoE(Power over Ethernet,以太网供电,又称远程供电)是指设备通过以太网接口,利用双绞线对外接PD(Powered Device,受电设备)设备(如IP 电话、无线AP、网络摄像头等&#x…

什么是视频短信,能用在什么地方?

视频短信是指通过106短信将带有视频的短信内容发送到对应的手机中,也称之为点对点的信息传递方式,视频短信可以支持2兆以内的多媒体信息发送,是直接、直观的宣传、沟通方式。 一、怎么就偏偏要找视频短信 根据目前的行情状况,尽管…

为什么模方崩过后重新新建工程打开会提示“OSG读取Node失败”?

为什么模方崩过后重新新建工程打开会提示“OSG读取Node失败”? 答:瓦块数据中可能有空文件或者不符合osgb组织结构的文件,可以检查移除。 模方是一款针对实景三维模型的冗余碎片、水面残缺、道路不平、标牌破损、纹理拉伸模糊等共性问题研发的…

3d模型素材亮度和对比度如何调整呢?

1、修改材质参数:打开3ds Max后,选择要调整亮度和对比度的3D模型素材。然后,进入材质编辑器,选择相应的材质球。在材质编辑器中,你可以调整材质的漫反射、反射和高光等参数,这些参数将影响模型的亮度和对比…