欢迎来到阿里云授权服务中心典名科技有限公司!咨询电话:023-66887777 18623333330

微信
手机版
网站地图

如何选择MySQL的存储引擎

2021-08-11 11:07:39 投稿人 : admin 围观 : 258 次 0 评论

  存储引擎是负责数据的存储和提取的。MySQL支持多种存储引擎,存储引擎之间是可以替换的,所以叫插件式的存储引擎。每个存储引擎都有各自的特点和应用场景。需要特别注意的是,存储引擎是基于表的,而不是数据库。

  02】存储引擎分类

  首先,数据库支持哪些存储引擎,可以通过如下命令查看:

  show engines;

  如何查看已经存在的表使用的是哪种存储引擎?可以使用DDL建表语句,命令如下:

  show create table table_name;-- 例:ENGINE=InnoDB

  在MySQL服务器,表具体是怎么样存储的呢?数据文件的存储路径可以通过以下命令查看:

  show variables like 'datadir';-- /var/lib/mysql/

  默认情况下,每个库对应一个文件夹,而且不管表用的是哪种类型的存储引擎,都会有一个扩展名是frm的表结构定义文件,不同类型的存储引擎存储数据的文件格式不同,具体如下。

  下面介绍下几种常见存储引擎:

  一、InnoDB

  MySQL5.7默认的存储引擎,数据存储在ibd文件中,该文件还会存放相关的索引数据。特点:

  支持事务,支持外键,因此数据的完整性、一致性更高。

  支持行级别的锁和表级别的锁。

  支持读写并发,写不阻塞读(MVCC)。

  特殊的索引存放方式,可以减少 IO,提升查询效率。

  适合经常更新的表或者存在并发读写或者有事务处理的业务系统。

未标题-1.jpg

  二、MyISAM

  MySQL5.5之前默认的存储引擎,数据存储在MYD文件中,相关索引数据存储在MYI文件中。表级锁定限制了读/写的性能,因此在 Web 和数据仓库配置中,它通常用于只读或以读为主的工作。特点:

  支持表级别的锁。

  不支持事务。

  存储了表的行数(count 速度更快)。

  适合只读或以读为主的数据分析项目。

  三、Memory

  特点:

  数据存储在内存里面,所以读写的速度很快,但是数据库重启或者崩溃,数据会全部消失。

  适合做临时表。

  四、CSV

  数据以CSV文件存储。特点:

  不支持索引。

  不允许空行。

  可以直接编辑。

  适合在不同数据库之间导入导出。

  五、Archive

  采用压缩协议进行数据存储,数据存储为ARZ文件格式。

  特点:不支持索引,不支持 update delete。

  适合做数据的备份。

  以上是 MySQL 里面常见的一些存储引擎。

  【03】如何选择存储引擎

  如果对数据一致性要求比较高,需要事务支持,可以使用InnoDB。如果是只读或者大部分只读的表,可以使用MyISAM。


版权声明:本站部分文章内容、图片来源于网友推荐、互联网收集整理而来,仅供大家学习参考,不代表本站立场,如有侵权,请联系站长,我们会第一时间处理!本站原创内容未经允许不得转载,或转载时需注明出处:典名科技资讯门户

相关文章

  • oracle临时表空间的增删改查命令
    oracle临时表空间的增删改查命令

    oracle临时表空间的增删改查命令发布时间:2021-08-31 01:57:42来源:阿里云阅读:60作者:chen栏目:关系型数据库本篇内容介绍了“oracle临时表空间的增删改查命令”的有关知识,在实际案例的操作过程中,不少人都会遇...

    2021-08-31 11:52:19
  • Redis4.0从库复制报错"master_link_status:down"怎么处理
    Redis4.0从库复制报错"master_link_status:down"怎么处理

    “Redis4.0从库复制报错"master_link_status:down"怎么处理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Redis4.0从库复制报错&quo...

    2021-08-31 11:52:19
  • MySQL数据库中有哪些锁
    MySQL数据库中有哪些锁

    “MySQL数据库中有哪些锁”,在日常操作中,相信很多人在MySQL数据库中有哪些锁问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL数据库中有哪些锁”的疑惑有所帮助!接下来!在 MySQL 数据库中,...

    2021-08-31 11:24:19
  • MSSQL报错参数数据类型text对于replace函数的参数1无效怎么解决
    MSSQL报错参数数据类型text对于replace函数的参数1无效怎么解决

    “MSSQL报错参数数据类型text对于replace函数的参数1无效怎么解决”,在日常操作中,相信很多人在MSSQL报错参数数据类型text对于replace函数的参数1无效怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作...

    2021-08-31 11:21:19
  • solaris11 ssh怎么禁止root用户连接
    solaris11 ssh怎么禁止root用户连接

    “solaris11 ssh怎么禁止root用户连接”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“solaris11 ssh怎么禁止root用户连接”吧!在虚拟机中新安装的solaris11,安...

    2021-08-31 11:20:19
  • 怎么用SQL语句查看SQL Server的结构信息
    怎么用SQL语句查看SQL Server的结构信息

    “怎么用SQL语句查看SQL Server的结构信息”,在日常操作中,相信很多人在怎么用SQL语句查看SQL Server的结构信息问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么用SQL语句查看SQL S...

    2021-08-31 11:04:20
  • sqlplus和sqlldr工具的安装方法
    sqlplus和sqlldr工具的安装方法

    “sqlplus和sqlldr工具的安装方法”。本文介绍的方法操作简单快捷,实用性强。sqlplus和sqlldr工具的安装方法”吧!不管安装什么客户端工具都需要先安装instantclient-basic-linux.x64-11.2.0...

    2021-08-31 10:59:20
  • MHA的安装和部署步骤
    MHA的安装和部署步骤

    “MHA的安装和部署步骤”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!##################MHA安装和部署###########...

    2021-08-31 10:52:20
  • redis4.0下MEMORY命令详解
    redis4.0下MEMORY命令详解

    “redis4.0下MEMORY命令详解”,在日常操作中,相信很多人在redis4.0下MEMORY命令详解问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”redis4.0下MEMORY命令详解”的疑惑有所帮助...

    2021-08-31 10:52:19
  • MySQL内存线程独享使用的方法
    MySQL内存线程独享使用的方法

    “MySQL内存线程独享使用的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL内存线程独享使用的方法”吧!  今天这篇文章暂时先分析 MySQL 中主要的 “线程独享内存” 的。...

    2021-08-25 10:37:36
发表评论