MySQL 常用引擎总结分享

目录
  • 1.InnoDB
    • 1.1 优缺点分析
  • 2.MyISAM
    • 2.1 优缺点分析
  • 3.MEMORY
    • 3.1 优缺点分析
  • 4.查看和设置存储引擎
    • 4.1 查看存储引擎
    • 4.2 设置存储引擎
  • 总结

前言:

MySQL 有很多存储引擎(也叫数据引擎),所谓的存储引擎是指用于存储、处理和保护数据的核心服务。也就是存储引擎是数据库的底层软件组织。在 MySQL 中可以使用“show engines”来查询数据库的所有存储引擎,

如下图所示: 

 在上述列表中,我们最常用的存储引擎有以下 3 种:

  • InnoDB
  • MyISAM
  • MEMORY

下面我们分别来看看具体分析。

1.InnoDB

InnoDB 是 MySQL 5.1 之后默认的存储引擎,它支持事务、支持外键、支持崩溃修复和自增列。如果对业务的完整性要求较高,比如张三给李四转账,需要减张三的钱,同时给李四加钱,这时候只能全部执行成功或全部执行失败,此时可以通过 InnoDB 来控制事务的提交和回滚,从而保证业务的完整性。

1.1 优缺点分析

InnoDB 的优势是支持事务、支持外键、支持崩溃修复和自增列;它的缺点是读写效率较差、占用的数据空间较大。

2.MyISAM

MyISAM 是 MySQL 5.1 之前默认的数据库引擎,读取效率较高,占用数据空间较少,但不支持事务、不支持行级锁、不支持外键等特性。因为不支持行级锁,因此在添加和修改操作时,会执行锁表操作,所以它的写入效率较低。

2.1 优缺点分析

MyISAM 引擎保存了单独的索引文件 .myi,且它的索引是直接定位到 OFFSET 的,而 InnoDB 没有单独的物理索引存储文件,且 InnoDB 索引寻址是先定位到块数据,再定位到行数据,所以 MyISAM 的查询效率是比 InnoDB 的查询效率要高。但它不支持事务、不支持外键,所以它的适用场景是读多写少,且对完整性要求不高的业务场景。

3.MEMORY

内存型数据库引擎,所有的数据都存储在内存中,因此它的读写效率很高,但 MySQL 服务重启之后数据会丢失。它同样不支持事务、不支持外键。MEMORY 支持 Hash 索引或 B 树索引,其中 Hash 索引是基于 key 查询的,因此查询效率特别高,但如果是基于范围查询的效率就比较低了。而前面两种存储引擎是基于 B+ 树的数据结构实现了。

3.1 优缺点分析

MEMORY 读写性能很高,但 MySQL 服务重启之后数据会丢失,它不支持事务和外键。适用场景是读写效率要求高,但对数据丢失不敏感的业务场景。

4.查看和设置存储引擎

4.1 查看存储引擎

存储引擎的设置粒度是表级别的,也就是每张表可以设置不同的存储引擎,我们可以使用以下命令来查询某张表的存储引擎:

show create table t;

如下图所示: 

4.2 设置存储引擎

在创建一张表的时候设置存储引擎: 

 修改一张已经存在表的存储引擎: 

总结

MySQL 中最常见的存储引擎有:InnoDB、MyISAM 和 MEMORY,其中 InnoDB 是 MySQL 5.1 之后默认的存储引擎,它支持事务、支持外键、支持崩溃修复和自增列,它的特点是稳定(能保证业务的完整性),但数据的读写效率一般;而 MyISAM 的查询效率较高,但不支持事务和外键;MEMORY 的读写效率最高,但因为数据都保存在内存中的,所以 MySQL 服务重启之后数据就会丢失,因此它只适用于数据丢失不敏感的业务场景。

到此这篇关于MySQL 常用引擎总结分享的文章就介绍到这了,更多相关MySQL 引擎内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • MySQL表类型 存储引擎 的选择

    目录 1.查看当前数据库支出的存储引擎 方法1: 方法2: 2.ENGINE={存储引起类型}  创建表的时候,设置存储引擎 3.alter able tablename engine={存储引起类型} 修改表为其他存储引擎 3.1 常用存储引擎的对比 3.2 常用存储引擎学习(MyISAM.InnoDB.MEMORY 和 MERGE) 1.查看当前数据库支出的存储引擎 方法1: mysql> show engines \G; *************************** 1. row

  • MySQL修改默认引擎和字符集详情

    目录 一.数据库引擎 1.1 查看数据库引擎 1.2 修改默认数据库引擎 二.数据库字符集 2.1 查看字符集 2.2 修改字符集 一.数据库引擎 1.1 查看数据库引擎 mysql> show engines; +--------------------+---------+----------------------------------------------------------------+--------------+------+------------+ | Engine |

  • 详解MySql中InnoDB存储引擎中的各种锁

    目录 什么是锁 InnoDB存储引擎中的锁 锁的算法 行锁的3种算法 幻像问题 锁的问题 脏读 不可重复读 丢失更新 死锁 什么是锁 现实生活中的锁是为了保护你的私有物品,在数据库中锁是为了解决资源争抢的问题,锁是数据库系统区别于文件系统的一个关键特性.锁机制用于管理对共享资源的并发访. 数据库系统使用锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性 InnoDB存储引擎区别于MyISAM的两个重要特征就是:InnoDB存储引擎支持事务和行级别的锁,MyISAM只支持表级别的锁 In

  • Mysql实现简易版搜索引擎的示例代码

    目录 前言 简介 ngram 全文解析器 创建全文索引 检索方式 1.自然语言检索(NATURAL LANGUAGE MODE) 2.布尔检索(BOOLEAN MODE) 与 Like 对比 总结 前言 前段时间,因为项目需求,需要根据关键词搜索聊天记录,这不就是一个搜索引擎的功能吗? 于是我第一时间想到的就是 ElasticSearch 分布式搜索引擎,但是由于一些原因,公司的服务器资源比较紧张,没有额外的机器去部署一套 ElasticSearch 服务,而且上线时间也比较紧张,数据量也不大,

  • MySQL 常用引擎总结分享

    目录 1.InnoDB 1.1 优缺点分析 2.MyISAM 2.1 优缺点分析 3.MEMORY 3.1 优缺点分析 4.查看和设置存储引擎 4.1 查看存储引擎 4.2 设置存储引擎 总结 前言: MySQL 有很多存储引擎(也叫数据引擎),所谓的存储引擎是指用于存储.处理和保护数据的核心服务.也就是存储引擎是数据库的底层软件组织.在 MySQL 中可以使用“show engines”来查询数据库的所有存储引擎, 如下图所示:   在上述列表中,我们最常用的存储引擎有以下 3 种: Inno

  • mysql常用函数汇总(分享)

    一.数学函数ABS(x)   返回x的绝对值BIN(x)   返回x的二进制(OCT返回八进制,HEX返回十六进制)CEILING(x)   返回大于x的最小整数值EXP(x)   返回值e(自然对数的底)的x次方FLOOR(x)   返回小于x的最大整数值GREATEST(x1,x2,...,xn)返回集合中最大的值LEAST(x1,x2,...,xn)      返回集合中最小的值LN(x)                    返回x的自然对数LOG(x,y)返回x的以y为底的对数MOD(

  • 值得收藏的mysql常用命令集锦

    本文为大家详细整理了mysql常用命令,分享给大家,供大家参考 1.连接Mysql 格式:mysql -h主机地址 -u用户名 -p用户密码 1).连接到本机上的MYSQL. 首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是密码前必须没有空格,否则让你重新输入密码. 如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysq

  • mysql常用函数实例总结【聚集函数、字符串、数值、时间日期处理等】

    本文实例讲述了mysql常用函数.分享给大家供大家参考,具体如下: 本文内容: mysql函数的介绍 聚集函数 avg count max min sum 用于处理字符串的函数 合并字符串函数:concat(str1,str2,str3-) 比较字符串大小函数:strcmp(str1,str2) 获取字符串字节数函数:length(str) 获取字符串字符数函数:char_length(str) 字母大小写转换函数:大写:upper(x),ucase(x):小写lower(x),lcase(x)

  • MySQL常用存储引擎功能与用法详解

    本文实例讲述了MySQL常用存储引擎功能与用法.分享给大家供大家参考,具体如下: MySQL存储引擎主要有两大类: 1. 事务安全表:InnoDB.BDB. 2. 非事务安全表:MyISAM.MEMORY.MERGE.EXAMPLE.NDB Cluster.ARCHIVE.CSV.BLACKHOLE.FEDERATED等. MySQL默认的存储引擎是MyISAM(5.7版本中默认为InnoDB). 配置文件中设置默认存储引擎的参数:default-table-type. 查询当前数据库支持的存储

  • mysql常用备份命令和shell备份脚本分享

    备份多个数据库可以使用如下命令: mysqldump -uroot -p123456 --databases test1 test2 test3 > /home/test/dump.sql; 恢复备份: source dump.sql --在mysql命令行中输入该命令即可恢复 备份整个数据库: mysqldump -uroot -123456 -A > all.sql 备份整个数据库结构: mysqldump -uroot -p123456 -P3306 -A -d > all_002

  • MySQL创建表操作命令分享

    目录 一.表命令 1.查看所有表 2.创建表 3.创建一个用户表 二.MySQL支持的常用数据类型 1.数字型 2.字符串 3.日期 三.MySQL支持的常用约束 四.存储引擎 五.表命令(crud) 1.查看表结构 2.查看表的创建语句 3.更改表名称 4.修改表 5.删除表 六.更新约束 1.先创建一个表,除了主键,不加其他约束. 2.给手机号添加唯一约束 3.删除唯一约束 4.给名字添加非空约束 5.删除非空约束 6.给生日添加默认约束 7.删除默认约束 一.表命令 1.查看所有表 sho

  • Mac环境下php操作mysql数据库的方法分享

    Mac本地环境搭建 在Mac系统,我们可以使用MAMP Pro 软件来搭建本地服务器.安装好这款软件,网站的目录在 /Applications/MAMP/htdocs 文件夹里,只需将文件放入该文件夹中,就可以通过http://localhost:8888来访问了,或者通过点击如下红色下划线按钮来快速访问站点. mac系统下安装php,两行即可. brew tap josegonzalez/homebrew-php brew install php54 安装完后配置一下,你就可以使用phpsto

  • MySQL常用的建表、添加字段、修改字段、添加索引SQL语句写法总结

    本文实例讲述了MySQL常用的建表.添加字段.修改字段.添加索引SQL语句写法.分享给大家供大家参考,具体如下: 建表: DROP TABLE IF EXISTS bulletin; CREATE TABLE bulletin( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, # 主键 uid INT(11) NOT NULL DEFAULT 0, # 创建者id context VARCHAR(600) NOT NULL DEFAULT '', # 公告

  • MySQL数据库引擎介绍、区别、创建和性能测试的深入分析

    数据库引擎介绍 MySQL数据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HEAP.另外两种类型INNODB和BERKLEY(BDB),也常常可以使用.如果技术高超,还可以使用MySQL+API自己做一个引擎.下面介绍几种数据库引擎:  ISAM:ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到 数据库被查询的次数要远大于更新的次数.因此,ISAM执行读取

随机推荐