MYSQL数据常用存储引擎

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介:       这里主要介绍mysql两个主要引擎:INNODB、MYISAM。MySQL默认存储引擎是MYISAM。一、INNODB存储引擎       innodb引擎提供了对数据库ACID事务支持、行级锁和外键约束,处理大数据量的数据库系统。

      这里主要介绍mysql两个主要引擎:INNODB、MYISAM。MySQL默认存储引擎是MYISAM。


一、INNODB存储引擎

       innodb引擎提供了对数据库ACID事务支持、行级锁和外键约束,处理大数据量的数据库系统。Mysql运行时innodb会在内存中建立缓存池,用于缓存数据和索引。但是该索引不支持全文搜索。不会保存表的行数,例如:count(*)是全表扫描。由于锁的颗粒小写入操作时不会锁定全表。

  1. 适用场景

      1)经常写入操作、并发更新请求。

      2)支持事务回滚、数据恢复(通过bin-log日志)

      3)支持外键约束

      4)支持自增列auto_increment


二、MYISAM存储引擎

       myisam引擎是mysql默认的存储引擎,它不支持事务、行级锁、外键约束,在执行写入操作时需要锁定全表,效率低。myisam可以保存行数,例如:count(*)不会扫描全表而是直接读取行数,效率高。读取数据大过写入操作myisam很适用。

  1.  适用场景 
      1)myisam不支持事务,如使用myisam存储数据可以在service层根据业务需求做控制。

      2)经常对表进行枷锁的场景、不支持外键。

      3)查询效率很高

      4)不能自动表损坏恢复数据


三、INNODB与MYISAM使用索引数据结构

      innodb和myisam都是使用B+Tree结构

      MyIASM引擎,B+树的数据结构中存储的内容实际上是实际数据的地址值。

      Innodb引擎的索引存储的是实际的数据。


四、INNODB与MYISAM的区别

  1. innodb主键索引

          表数据文件本身就是索引文件,必须要有主键。

     2. InnoDB的辅助索引(Secondary Index, 也就是非主键索引)

           会包含主键列,比如名字建立索引,内部节点会包含名字,叶子节点会包含该名字对应的主键的值,如果主键定义的比较大,其他索引也将很大。

     3. myisam主索引和辅助索引(Secondary key)

        结构上和innodb没有任何区别,只是主索引要求key是唯一的,辅助索引可以重复,结构上没有任何区别,只是主索引要求key是唯一的,辅助索引可以重复。


五、修改存储 引擎的几种方式

      1、修改配置文件my.ini

       将mysql.ini另存为my.ini,在[mysqld]后面添加default-storage-engine=InnoDB,重启服务,数据库默认的引擎修改为InnoDB

      2、建表指定

create table user(   
    id int primary key,   
    name varchar(50)   
)type=Innodb;

     3、建表后更改

alter table user
type = InnoDB;

     查看修改是否成功:

show table status from user; 


mysql其他存储引擎

   Memory, Blackhole,  CSV, Performance_Schema,Archive, Federated , Mrg_Myisam






相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
存储 缓存 关系型数据库
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
MySQL的存储引擎是其核心组件之一,负责数据的存储、索引和检索。不同的存储引擎具有不同的功能和特性,可以根据业务需求 选择合适的引擎。本文详细介绍了MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案。
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
|
6天前
|
存储 关系型数据库 MySQL
MySQL存储引擎详述:InnoDB为何胜出?
MySQL 是最流行的开源关系型数据库之一,其存储引擎设计是其高效灵活的关键。InnoDB 作为默认存储引擎,支持事务、行级锁和外键约束,适用于高并发读写和数据完整性要求高的场景;而 MyISAM 不支持事务,适合读密集且对事务要求不高的应用。根据不同需求选择合适的存储引擎至关重要,官方推荐大多数场景使用 InnoDB。
45 7
|
12天前
|
存储 关系型数据库 MySQL
mysql怎么查询longblob类型数据的大小
通过本文的介绍,希望您能深入理解如何查询MySQL中 `LONG BLOB`类型数据的大小,并结合优化技术提升查询性能,以满足实际业务需求。
45 6
|
1月前
|
存储 Oracle 关系型数据库
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
本文介绍了MySQL InnoDB存储引擎中的数据文件和重做日志文件。数据文件包括`.ibd`和`ibdata`文件,用于存放InnoDB数据和索引。重做日志文件(redo log)确保数据的可靠性和事务的持久性,其大小和路径可由相关参数配置。文章还提供了视频讲解和示例代码。
149 11
【赵渝强老师】MySQL InnoDB的数据文件与重做日志文件
|
24天前
|
SQL 关系型数据库 MySQL
mysql分页读取数据重复问题
在服务端开发中,与MySQL数据库进行数据交互时,常因数据量大、网络延迟等因素需分页读取数据。文章介绍了使用`limit`和`offset`参数实现分页的方法,并针对分页过程中可能出现的数据重复问题进行了详细分析,提出了利用时间戳或确保排序规则绝对性等解决方案。
|
29天前
|
关系型数据库 MySQL 数据库
GBase 数据库如何像MYSQL一样存放多行数据
GBase 数据库如何像MYSQL一样存放多行数据
|
1月前
|
缓存 NoSQL 关系型数据库
Redis和Mysql如何保证数据⼀致?
在项目中,为了解决Redis与Mysql的数据一致性问题,我们采用了多种策略:对于低一致性要求的数据,不做特别处理;时效性数据通过设置缓存过期时间来减少不一致风险;高一致性但时效性要求不高的数据,利用MQ异步同步确保最终一致性;而对一致性和时效性都有高要求的数据,则采用分布式事务(如Seata TCC模式)来保障。
67 14
|
2月前
|
存储 SQL 关系型数据库
MySQL存储引擎
本文介绍了数据库优化的多个方面,包括选择合适的存储引擎、字段定义原则、避免使用外键和触发器、大文件存储策略、表拆分及字段冗余处理等。强调了从业务层面进行优化的重要性,如通过活动设计减少外部接口调用,以及在高并发场景下的流量控制与预处理措施。文章还提供了具体的SQL优化技巧和表结构优化建议,旨在提高数据库性能和可维护性。
MySQL存储引擎
|
1月前
|
SQL 前端开发 关系型数据库
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
SpringBoot使用mysql查询昨天、今天、过去一周、过去半年、过去一年数据
65 9
|
1月前
|
存储 缓存 关系型数据库
【赵渝强老师】MySQL的MyISAM存储引擎
在MySQL5.1版本之前,默认存储引擎为MyISAM。MyISAM管理非事务表,提供高速存储和检索,支持全文搜索。其特点包括不支持事务、表级锁定、读写互阻、仅缓存索引等。适用于读多、写少且对一致性要求不高的场景。示例代码展示了MyISAM存储引擎的基本操作。