当前位置:网站首页>MySQL存储引擎概念
MySQL存储引擎概念
2022-08-11 05:02:00 【LEE_九月】
文章目录
1.存储引擎概念
MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平,并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎
存储引擎是MySQL将数据存储在文件系统中的存储方式或者存储格式
MySQL常用的存储引擎
MylSAM
lnnoDB
MySQL数据库中的组件,负责执行实际的数据I/O操作
MySQL系统中,存储引擎处于文件系统之上,在数据保存到数据文件之前会传输到存储引擎,之后按照各个存储引擎的存储格式进行存储
2.MyISAM与Innodb
2.1 MyISAM
MyISAM不支持事务,也不支持外键约束,只支持全文索引,数据文件和索引文件是分开保存的
访问速度快,对事务完整性没有要求
适合查询、插入为主的应用场景
MyISAM在磁盘上存储成三个文件,文件名和表名都相同,但是扩展名分别为:
文件存储表结构的定义 .frm
数据文件的扩展名为 .MYD (MYData)
索引文件的扩展名是 .MYI (MYIndex)
MyISAM是表级锁定,读或写无法同时进行
好处是:分开执行时,速度快、资源占用相对较少(相对)
2.2 MyISAM表支持的3种不同的存储格式
- 静态(固定长度)表
静态表是默认的存储格式。静态表中的字段都是非可变字段,这样每个记录都是固定长度的,这种存储方式的优点是存储非常迅速,容易缓存,出现故障容易恢复;缺点是占用的空间通常比动态表多 - 动态表
动态表包含可变字段,记录不是固定长度的,这样存储的优点是占用空间较少,但是频繁的更新、删除记录会产生碎片,需要定期执行 OPTIMIZE TABLE 语句或 myisamchk -r 命令来改善性能,并且出现故障的时候恢复相对比较困难 - 压缩表
压缩表由 myisamchk 工具创建,占据非常小的空间,因为每条记录都是被单独压缩的,所以只有非常小的访问开支
2.3 MyISAM适用的生产场景
公司业务不需要事务的支持
单方面读取或写入数据比较多的业务
MyISAM存储引擎数据读写都比较频繁场景不适合
使用读写并发访问相对较低的业务
数据修改相对较少的业务
对数据业务一致性要求不是非常高的业务
服务器硬件资源相对比较差
MyIsam适合于单方向的任务场景、同时并发量不高、对于事务要求不高的场景
2.4 IoonDB
InnoDB特点
支持事务,支持4个事务隔离级别
MySQL从5.5.5版本开始,默认的存储引擎为InnoDB,5.5之前是myisam( isam )默认
读写阻塞与事务隔离级别相关
能非常高效的缓存索引和数据
表与主键以簇的方式存储
支持分区、表空间,类似oracle数据库(5.5 -》5.6和5.7第三代数据库8.0后版本)
支持外键约束,5.5前不支持全文索引,5.5后支持全文索引
对硬件资源要求还是比较高的场合
行级锁定,但是全表扫描仍然会是表级锁定(select)
2.5 InnoDB适用生产场景分析
业务需要事务的支持
行级锁定对高并发有很好的适应能力,但需确保查询是通过索引来完成
业务数据更新较为频繁的场景,▷ 如:论坛,微博等
业务数据一致性要求较高,▷如:银行业务
硬件设备内存较大,利用InnoDB较好的缓存能力来提高内存利用率,减少磁盘I0的压力
2.6 MyISAM与Innodb区别
MyISAM不支持事务,也不支持外键约束,只支持全文索引,数据文件和索引文件是分开保存的;访问速度快,对事务完整性没有要求,适合查询、插入为主的应用场景
Innodb支持事务,支持4个事务隔离级别,支持索引,支持外键约束
3.控制语句
3.1查看系统支持的存储引擎
show engines;

3.2查看表使用的存储引擎
#方法一
show table status from 库名 where name='表名'\G;

#方法二
use 库名;
show create table 表名;

3.3修改存储引擎
#方法一
use 库名;
alter table 表名 engine=MyISAM;

#方法二
#通过修改 /etc/my.cnf 配置文件,指定默认存储引擎并重启服务
[[email protected] ~]# vim /etc/my.cnf
......
[mysqld]
......
default-storage-engine=INNODB
[[email protected] ~]# systemctl restart mysqld

此方法只对修改了配置文件并重启mysql服务后新创建的表有效,已经存在的表不会有变更
新建一个表查看

#方法三
#通过 create table 创建表时指定存储引擎
create table 表名(字段1 数据类型,...) engine=InnoDB;

边栏推荐
猜你喜欢

form表单提交数据库中文变成问号

交换机和路由器技术-34-动态NAT

Paper Notes: BBN: Bilateral-Branch Network with Cumulative Learning for Long-Tailed Visual Recognition

交换机和路由器技术-25-OSPF多区域配置

CAN/以太网转换器 CAN与以太网互联互通

交换机和路由器技术-30-标准ACL

MySQL必知必会(初级篇)

HAVE FUN | “SOFA 星球”飞船计划、源码解析活动最新进展

I wrote some code in my resume, but I still can't pass the interview

Switch and Router Technology - 28 - NSSA Areas for OSPF
随机推荐
Word2021 中的图片保存后就变模糊了
[Web3 series development tutorial - create your first NFT (9)] How to view your NFT in the mobile wallet
Sub-database sub-table ShardingSphere-JDBC notes arrangement
一起Talk编程语言吧
2021年网络规划设计师下午案例题
金仓数据库 KingbaseGIS 使用手册(6.8. 几何对象输入函数)
绿盾加密如何顺利切换成IP-Guard加密
Kong implements ban on foreign IP access
Events and scheduled tasks in Mysql
Australia cyberspace security system construction
2021 Network Planning Designer Afternoon Case Questions
Golden Warehouse Database KingbaseGIS User Manual (6.8. Geometry Object Input Function)
如何将360全景图导出高清短视频分享到视频平台上?
MQ框架应用比较
How to read a paper
Thymeleaf
[FPGA tutorial case 49] Control case 1 - FPGA-based PID controller verilog implementation
Application of Identification Cryptography in IMS Network
Switch and Router Technology-33-Static NAT
form form submission database Chinese becomes a question mark