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

 更新时间:2019年05月14日 15:16:27   作者:chengwhhu  
这篇文章主要介绍了MySQL中四种常用存储引擎,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

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中四种常用存储引擎详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

相关文章

  • Django连接本地mysql数据库(pycharm)的步骤

    Django连接本地mysql数据库(pycharm)的步骤

    这篇文章主要介绍了Django连接本地mysql数据库(pycharm)的步骤,本文分步骤给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • MySQL系列之五 视图、存储函数、存储过程、触发器

    MySQL系列之五 视图、存储函数、存储过程、触发器

    视图就是一条select语句执行后返回的结果集;触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合;函数存储着一系列sql语句,调用函数就是一次性执行这些语句,而存储过程就是一组可编程的函数,需要的朋友可以参考下
    2021-07-07
  • mysql中secure_file_priv=不生效问题及解决

    mysql中secure_file_priv=不生效问题及解决

    这篇文章主要介绍了mysql中secure_file_priv=不生效问题及解决方案,以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家,
    2024-01-01
  • MySQL一对多查询的实现示例

    MySQL一对多查询的实现示例

    一对多连接查询就是其中一种常见的查询方式,它可以将一张表中的一行记录与多张表中的多行记录关联起来,并将其结果输出,本文就来介绍一下如何使用,感兴趣的可以了解一下
    2023-10-10
  • MySQL启动失败之MySQL服务无法启动的原因及解决

    MySQL启动失败之MySQL服务无法启动的原因及解决

    这篇文章主要介绍了MySQL启动失败之MySQL服务无法启动的原因及解决,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • MySQL入门(四) 数据表的数据插入、更新、删除

    MySQL入门(四) 数据表的数据插入、更新、删除

    这篇文章主要介绍了mysql数据库中表的插入、更新、删除非常简单,但是简单的也要学习,细节决定成败,需要的朋友可以参考下
    2018-07-07
  • MySQL进阶查询、聚合查询和联合查询

    MySQL进阶查询、聚合查询和联合查询

    这篇文章主要介绍了MySQL数据库的进阶查询,聚合查询及联合查询,文中有详细的代码示例,需要的朋友可以参考阅读
    2023-04-04
  • MySQL查询性能优化方法汇总讲解

    MySQL查询性能优化方法汇总讲解

    这篇文章主要介绍了MySQL查询性能优化方法,Mysql查询性能优化要从三个方面考虑,库表结构优化、索引优化和查询优化,通常在实际应用中,我们要面对这三种搅和一起的情况,需要了解MySQL查询性能优化方法的朋友可以参考下
    2024-05-05
  • Windows Server 2003下修改MySQL 5.5数据库data目录

    Windows Server 2003下修改MySQL 5.5数据库data目录

    这篇文章主要介绍了Windows Server 2003下修改MySQL 5.5数据库data目录,需要的朋友可以参考下
    2016-04-04
  • mysql列转行以及年月分组实例

    mysql列转行以及年月分组实例

    下面小编就为大家带来一篇mysql列转行以及年月分组实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03

最新评论