MYSQL引擎

  • 什么引擎?
    数据库引擎可以类比为软件的驱动,不同的引擎对数据的存储机制,索引技巧,索引技巧,锁定水平功能和能力不同。因为Oracle和SQL Server等数据库中只有一种存储引擎,所有数据存储管理机制都是一样的,而mysql有多个引擎以供使用(同一个库不同表,可以使用不同的引擎),所以mysql更关注各个数据引擎功能的区分。

  • mysql的引擎包括
    MyISAM 、InnoDB、MEMORY、BLACKHOLE、CSV、PERFORMANCE_SCHEMA、ARCHIVE、FEDERATED、MRG_MYISAM

  • mysql查看和设置引擎
    查看数据库支持的引擎: SHOW ENGINES;
    查看表使用的引擎: SHOW TABLE STATUS LIKE ‘表名’;
    修改引擎: mysql默认引擎InnoDB,可以修改引擎
    方式 1:将 mysql.ini 中 default-storage-engine=InnoDB,重启服务。
    方式 2:建表时指定 CREATE TABLE 表名(…)ENGINE=MYISAM。
    方式 3:建表后修改 ALTER TABLE 表名 ENGINE = INNODB。

  • 各个引擎对比图
    在这里插入图片描述
    InnoDB在 MySQL 5.6 之后 开始支持全文搜索

注:InnoDB和MyIsam是mysql常用的引擎,主要关注这两款引擎。
二者对比:
MyISAM 不支持事务,且因是表锁定对高并发相比InnoDB不是很友好,表空间使用小 内存占用的也小,因为MyISAM 内存只存索引,不存真实数据。
InnoDB 支持事务,行锁定并发性相对友好,表空间使用大 内存占用的也大,内存存真实数据。

所以InnoDB 相比MyISAM对硬件的要求更高一些。

  • InnoDB 简介
    它是一个事务型的存储引擎,有行级锁和外键约束,支持全文检索(全文索引),它的设计目标就是为了处理大容量数据库系统。
    InnoDB的表存储只生成一个文件,
    MySQL运行时InnoDB会在内存中建立缓冲池,用于缓冲数据和索引;支持主键自增和外键;不存储表的总行数。

InnoDB给MySQL的表提供了事务处理、回滚、奔溃修复能力和多版本并发控制的事务安全,它也是MySQL上第一个提供外键约束的表引擎。而且InnoDB对事务的处理能力,也是其他存储引擎不能比拟的。

优点:
就在于它提供了良好的事务处理,奔溃修复和并发控制。

  • MyISAM 简介
    它也是MySQL常见的存储引擎,曾经是MySQL的默认存储引擎。MyISAM是基于ISAM引擎发展起来的,增加了许多有用的扩展。
    MyISAM的表存储有3个文件。

文件的名字与表名都一样。扩展名分别是MYD、MYI、sdi。
在MYD中存储文件的数据。
在MYI中存储文件的索引。
在sdi中存储表的结构。

基于MyISAM存储引擎的表支持3中不同的粗出格式。包括静态型,动态型和压缩型。其中,静态型是MyISAM的默认存储格式,它的字段是固定长度的;动态型包括变长字段,记录的长度不是固定的;压缩型需要用到myisampack工具,占用的磁盘空间较小。

MyISAM的优势就在于占用空间小,查询处理速度快。缺点就是不支持事务的完整性和并发性,INSERT(插入)或UPDATE(更新)数据时需要锁定整个表,效率更低眼底下。

文章参考自链接:https://blog.csdn.net/weixin_45970271/article/details/124230577

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值