【MySQL】MyISAM与Innodb

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 【MySQL】MyISAM与Innodb

 数据存放在数据库中有一定的存储方式,这种是引擎。不同引擎存取,功能,占用空间大小,读取性能有区别;


      好比我们保存图片,可以保存层不同的格式如JPEG,PNG,BMP等,但给我们或者用户看到实际图片的内容是一样的,直观区别是,占用系统的空间大小与清晰程度可能不同。我们保存到数据库里的数据于上述所说保存的图片特征类似,也有很多存储方式。但是,对于用户和应用程序来说,同样一张表的数据,无论用什么引擎来存储,用户看到的数据是一样的。布偶听的引擎存取,引擎功能,占用的空间大小,读取性能等可能有区别。


      我们可以通过使用命令:Show index from tblName。或者通过使用可视化工具查看,比如,使用Navicat打开表,查看表设计。



20180826204619986.png



MySQL常用的存储引擎有:myisam,innodb。在5.5版本前,默认是myisam,5.5版本后,默认是innodb;


     那么,这两种存储引擎最大的区别是:


    1、MyISAM不支持事务处理,读写操作会发生冲突,当查询和写入操作时间比较长时,会阻塞其他操作,容易导致连接堆积,有丢失数据的风险;而Innodb支持事务。在很大程度上决定了MyISAM不适合写频繁的业务;


     2、MyISAM支持表锁,不支持行锁和外键,因为当执行insert和update操作时,需要锁定整个表,效率低;而Innodb支持行锁(前提是表有索引,否则也是表锁),粒度小,执行写操作时效率高,但更消耗内存;


      3、Myisam有内置的计数器,存储表的行数,所以执行select count(*)from table 时,只需直接读取已经保存好的值,不需全表扫描。但innodb没有,执行此操作时,需要扫描整表;


     4、Myisam是非聚集索引,索引中保存数据的地址; B+树型索引,更有利于查找


      innodb是聚集索引,索引中保存实际的数据。B-树型索引


     5、innodb要求表必须有主键,如果没有显式指定,则MySQL系统会自动选择一个可以唯一标识记录的列做主键,如果没有这种列,MySQL自动为innodb表生成一个隐含字段作为主键,这个字段为6个自荐,类型为长整型。


       Myisam 不要求有主键;


     6、myisam不支持外键;innodb支持外键


参考文章:


https://www.cnblogs.com/0201zcr/p/5296843.html


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1天前
|
存储 关系型数据库 MySQL
【MySQL系列笔记】InnoDB引擎-数据存储结构
InnoDB 存储引擎是MySQL的默认存储引擎,是事务安全的MySQL存储引擎。该存储引擎是第一个完整ACID事务的MySQL存储引擎,其特点是行锁设计、支持MVCC、支持外键、提供一致性非锁定读,同时被设计用来最有效地利用以及使用内存和 CPU。因此很有必要学习下InnoDB存储引擎,它的很多架构设计思路都可以应用到我们的应用系统设计中。
21 4
|
5天前
|
存储 监控 关系型数据库
【MySQL】InnoDB 什么情况下会产生死锁
【MySQL】InnoDB 什么情况下会产生死锁
|
7天前
|
SQL 关系型数据库 MySQL
|
7天前
|
存储 缓存 关系型数据库
|
12天前
|
存储 缓存 关系型数据库
MySQL的InnoDB引擎:深度解析与应用
【4月更文挑战第20天】本文深入探讨MySQL的InnoDB引擎,它采用MVCC和行级锁定实现高并发、高性能数据操作。InnoDB通过缓冲池减少I/O,支持ACID事务、外键约束和行级锁定,提供数据一致性。此外,还支持全文索引和灵活的索引策略。其高并发性能、数据一致性和可扩展性使其成为首选存储引擎。
29 12
|
1天前
|
SQL 关系型数据库 MySQL
【MySQL-3】图形化界面工具DataGrip安装&配置&使用
【MySQL-3】图形化界面工具DataGrip安装&配置&使用
|
1天前
|
关系型数据库 MySQL Linux
【MySQL-2】MySQL的下载&安装&启停&配置环境变量【一条龙教程】
【MySQL-2】MySQL的下载&安装&启停&配置环境变量【一条龙教程】
|
2天前
|
弹性计算 关系型数据库 MySQL
在线安装MySQL5.7和MySQL8.0
【4月更文挑战第30天】
11 0
|
2天前
|
存储 关系型数据库 MySQL
docker安装mysql8忽略大小写
docker安装mysql8忽略大小写
|
2天前
|
Ubuntu 关系型数据库 MySQL
Ubuntu 20.04 + mysql8 安装以及配置大小写不敏感
Ubuntu 20.04 + mysql8 安装以及配置大小写不敏感