四、mysql(4)常用引擎之Innodb和MyISAM

本文介绍了MySQL的InnoDB和MyISAM两种存储引擎。InnoDB是事务型引擎,适合事务操作、大数据量读写等;MyISAM设计目标是快速读取,适用于插入更新少、读取频繁场景。还对比了两者优缺点、索引差异,并给出选择引擎的参考因素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、概念

1.Innodb

InnoDB是一个事务型的存储引擎,设计目标是处理大数量数据时提供高性能的服务,它在运行时会在内存中建立缓冲池,用于缓冲数据和索引。

2.MyISAM

MyISAM是MySQL默认的引擎,它的设计目标是快速读取。

二、区别(适用场景、优缺点)

1.适用场景

 InnoDB

    1.需要事务的操作;
    2.更新数据需要使用行级锁;
    3.大数据量读写;
    4.大型互联网应用。

MylSAM 

    1.不需要事务的操作;
    2.插入、更新少,读取频繁;
    3.频繁的统计计算。

2.优缺点

InnoDB

优点:

  1.支持事务处理、ACID事务特性;
  2.实现了SQL标准的四种隔离级别;
  3.支持行级锁和外键约束;
  4.可以利用事务日志进行数据恢复。

缺点:

  不支持FULLTEXT类型的索引,因为它没有保存表的行数,当使用COUNT统计时会扫描全表。

MylSAM 

优点:

  1.高性能读取;
  2.因为它保存了表的行数,当使用COUNT统计时不会扫描全表;

缺点:

  1.不支持数据库事务;
  2.不支持行级锁和外键;
  3.INSERT和UPDATE操作需要锁定整个表;
  4.不支持故障恢复;

三、关于索引

两种引擎所使用的索引的数据结构都是B+树

MyIASM引擎,B+树的数据结构中存储的内容实际上是实际数据的地址值。也就是说它的索引和实际数据是分开的,只不过使用索引指向了实际数据。这种索引的模式被称为非聚集索引。

Innodb引擎的索引的数据结构也是B+树,只不过数据结构中存储的都是实际的数据,这种索引有被称为聚集索引。

四、总结

-  数据库是否有外键? 
-  是否需要事务支持? 
-  是否需要全文索引? 
-  数据库经常使用什么样的查询模式?在写多读少的应用中还是Innodb插入性能更稳定,在并发情况下也能基本,如果是对读取     速度要求比较快的应用还是选MyISAM。 
-  数据库的数据有多大? 大尺寸倾向于innodb,因为事务日志,故障恢复。

参考文章:

https://www.jianshu.com/p/2ed07e691ca6

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值