浅谈MySQL中四种常用存储引擎

作者:chengwhhu 时间:2024-01-23 00:10:29 

MySQL常用的四种引擎的介绍

(1):MyISAM存储引擎:

不支持事务、也不支持外键,优势是访问速度快,对事务完整性没有 要求或者以select,insert为主的应用基本上可以用这个引擎来创建表

支持3种不同的存储格式,分别是:静态表;动态表;压缩表

静态表:表中的字段都是非变长字段,这样每个记录都是固定长度的,优点存储非常迅速,容易缓存,出现故障容易恢复;缺点是占用的空间通常比动态表多(因为存储时会按照列的宽度定义补足空格)ps:在取数据的时候,默认会把字段后面的空格去掉,如果不注意会把数据本身带的空格也会忽略。

动态表:记录不是固定长度的,这样存储的优点是占用的空间相对较少;缺点:频繁的更新、删除数据容易产生碎片,需要定期执行OPTIMIZE TABLE或者myisamchk-r命令来改善性能

压缩表:因为每个记录是被单独压缩的,所以只有非常小的访问开支

(2)InnoDB存储引擎*

该存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比MyISAM引擎,写的处理效率会差一些,并且会占用更多的磁盘空间以保留数据和索引。
InnoDB存储引擎的特点:支持自动增长列,支持外键约束

(3):MEMORY存储引擎

Memory存储引擎使用存在于内存中的内容来创建表。每个memory表只实际对应一个磁盘文件,格式是.frm。memory类型的表访问非常的快,因为它的数据是放在内存中的,并且默认使用HASH索引,但是一旦服务关闭,表中的数据就会丢失掉。
MEMORY存储引擎的表可以选择使用BTREE索引或者HASH索引,两种不同类型的索引有其不同的使用范围

Hash索引优点:
Hash 索引结构的特殊性,其检索效率非常高,索引的检索可以一次定位,不像B-Tree 索引需要从根节点到枝节点,最后才能访问到页节点这样多次的IO访问,所以 Hash 索引的查询效率要远高于 B-Tree 索引。
Hash索引缺点: 那么不精确查找呢,也很明显,因为hash算法是基于等值计算的,所以对于“like”等范围查找hash索引无效,不支持;

Memory类型的存储引擎主要用于哪些内容变化不频繁的代码表,或者作为统计操作的中间结果表,便于高效地对中间结果进行分析并得到最终的统计结果,。对存储引擎为memory的表进行更新操作要谨慎,因为数据并没有实际写入到磁盘中,所以一定要对下次重新启动服务后如何获得这些修改后的数据有所考虑。

(4)MERGE存储引擎

Merge存储引擎是一组MyISAM表的组合,这些MyISAM表必须结构完全相同,merge表本身并没有数据,对merge类型的表可以进行查询,更新,删除操作,这些操作实际上是对内部的MyISAM表进行的。

以上所述是小编给大家介绍的MySQL中四种常用存储引擎详解整合网站的支持!

来源:https://blog.csdn.net/qq_27028821/article/details/52267991

标签:MySQL,存储引擎
0
投稿

猜你喜欢

  • pd.read_csv读取文件路径出现的问题解决

    2022-03-16 06:12:53
  • Python numpy.zero() 初始化矩阵实例

    2021-04-06 01:52:46
  • VSCode 使用Settings Sync同步配置(最新版教程,非常简单)

    2022-10-17 08:50:47
  • Django框架自定义session处理操作示例

    2022-02-11 02:56:19
  • numpy找出array中的最大值,最小值实例

    2021-11-20 15:42:52
  • 带你熟练掌握Vue3之Pinia状态管理

    2024-05-28 15:52:44
  • python中dict()的高级用法实现

    2022-06-16 23:24:29
  • vue之组件内监控$store中定义变量的变化详解

    2023-07-02 17:01:31
  • python中parser.add_argument()用法实例(命令行选项、参数和子命令解析器)

    2022-06-09 03:54:43
  • JavaScript异步编程之Promise的初步使用详解

    2024-04-30 08:53:58
  • nlp自然语言处理学习CBOW模型类实现示例解析

    2023-08-08 00:26:03
  • Python操作Jira库常用方法解析

    2022-02-06 01:56:11
  • python的常见命令注入威胁

    2022-08-14 10:19:21
  • 讲解Python3中NumPy数组寻找特定元素下标的两种方法

    2023-07-17 09:58:42
  • Python面向对象类编写细节分析【类,方法,继承,超类,接口等】

    2023-01-01 11:23:13
  • 浅析jQuery对select操作小结(遍历option,操作option)

    2024-04-22 12:59:32
  • vscode单击新文件时覆盖旧文件的解决方法

    2022-02-16 09:09:48
  • mysql启动错误之mysql启动报1067错误解决方法

    2024-01-26 07:52:56
  • python中使用docx模块处理word文档

    2023-04-07 18:50:44
  • Mysql存储过程和函数区别介绍

    2024-01-25 00:40:35
  • asp之家 网络编程 m.aspxhome.com