MySQL储存引擎那些你不一定知道的东西

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL储存引擎那些你不一定知道的东西

1,什么是存储引擎?

简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式。数据库存储引擎是数据库底层软件组件, 数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作。不同的存储引擎提供不同的存储机制、 索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。


MySQL 提供了多个不同的存储引擎,包括处理事务安全表的引擎和处理非事务安全表的引擎。在 MySQL 中, 不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。


2,MySQL引擎分类

MySQL 5.7 支持的存储引擎有 InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、 BLACKHOLE 等。


如何选择 MySQL 存储引擎 不同的存储引擎都有各自的特点,以适应不同的需求,如表所示。为了做出选择,首先要考虑每一个存储引擎提 供了哪些不同的功能。


3e5c60503361fb85c43154bce1762bf2.png

3,MySQL存储引擎MyISAM与InnoDB区别

1)InnoDB支持事务,MyISAM不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改 中只要哪个出错还可以回滚还原,而MyISAM就不可以了。 2)MyISAM适合查询以及插入为主的应用,InnoDB适合频繁修改以及涉及到安全性较高的应用 3)InnoDB支持外键,MyISAM不支持 4)从MySQL5.5.5以后,InnoDB是默认引擎 5)InnoDB不支持FULLTEXT类型的索引 6)InnoDB中不保存表的行数,如select count(*) from table时,InnoDB需要扫描一遍整个表来计算有多少行, 但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含where条件时MyISAM也需要 扫描整个表。 7)对于自增长的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中可以和其他字段一起建立联 合索引


8)清空整个表时,InnoDB是一行一行的删除,效率非常慢。MyISAM则会重建表。 9)InnoDB支持行锁(某些情况下还是锁整表,如 update table set a=1 where user like '%lee%' 有人说MYISAM只能用于小型应用,其实这只是一种偏见。 如果数据量比较大,这是需要通过升级架构来解决,比如分表分库,读写分离,而不是单纯地依赖存储引 擎。 现在一般都是选用InnoDB了,主要是MyISAM的全表锁,读写串行问题,并发效率锁表,效率低, MyISAM对于读写密集型应用一般是不会去选用的。


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
打赏
0
0
0
0
57
分享
相关文章
MYSQL支持的存储引擎有哪些, 有什么区别
MYSQL存储引擎有很多, 常用的就二种 : MyISAM和InnerDB , 者两种存储引擎的区别 ; ● MyISAM支持256TB的数据存储 , InnerDB只支持64TB的数据存储 ● MyISAM 不支持事务 , InnerDB支持事务 ● MyISAM 不支持外键 , InnerDB支持外键
【MySQL系列笔记】InnoDB引擎-数据存储结构
InnoDB 存储引擎是MySQL的默认存储引擎,是事务安全的MySQL存储引擎。该存储引擎是第一个完整ACID事务的MySQL存储引擎,其特点是行锁设计、支持MVCC、支持外键、提供一致性非锁定读,同时被设计用来最有效地利用以及使用内存和 CPU。因此很有必要学习下InnoDB存储引擎,它的很多架构设计思路都可以应用到我们的应用系统设计中。
777 4
数据库-MySQL-基础(7)函数
数据库-MySQL-基础目录 函数 字符串函数 常用函数 例子 练习 数值函数 代码实现 案例练习 日期函数 常见函数 代码实现 案例 流程函数 常用函数 案例 代码(7)函数
128 0
数据库-MySQL-基础(7)函数
MySQL:如何将树形结构存储在数据库中
怎么存储这个结构?并且要获取以下信息: 1.查询小天的直接上司; 2.查询老宋管理下的直属员工; 3.查询小天的所有上司; 4.查询老王管理的所有员工。
1605 1
MySQL:如何将树形结构存储在数据库中