myIASM和innoDB的不同之处

数据库中常见的两种引擎 myISAM和innoDB 他们之间还是有所不同的

isam 是索引顺序存取方法,是一种索引机制,能高效的访问数据行

而myISAM是mysql基于isam 的扩展 的引擎,它不支持事务和外键,它使用的是表级锁,select,update,delete,insert语句都会给表自动加锁,这样会导致多线程并发运行时的处理效率较慢

.

innoDB 最大的特点就是它支持事务和外键,使用行级锁,如果有大量的update和insert等操作,建议使用

从以下几个方面讲
.1、文件存储形式
isam 属于堆表,一般有三种文件存储,(数据文件.MYD,表义文件.frm,和索引文件.MYI),并且支持三种不同的文件形式

  • 静态表(默认 但是注意数据末尾不能有空格,会被去掉)
  • 动态表
  • 压缩表

    innoDB 属于可以是表共享 和多表空间存储
    表共享是所有的表文件和索引文件.frm都存放在一个表空间中,一个表空间可以有多个文件
    如果是多表空间存储,每个空间存储一个表文件和索引 .ibd
    innodb在主存中建立高速缓存池,用于高速缓存数据文件和索引文件,所以需要的内存空间较大
    .2、移植性
    myisam 是存储于文件中,跨平台移植较为方便 innoDB是拷贝数据文件,当数据量大的时候就不方便
    .3、事务的支持
    myisam 不支持事务和外键
    innoDB 支持事务和外键,有事务回滚和恢复作用
    .4、锁的粒度
    myisam 支持表级锁,在curd操作时会给整张表上锁
    innoDB支持的是行级锁,提高了并发操作的性能
    .5、全文索引
    myisam :支持 FULLTEXT类型的全文索引
    InnoDB:不支持FULLTEXT类型的全文索引,但是innodb可以使用sphinx插件支持全文索引,并且效果更好。

应用场景:
1).MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择。
2).InnoDB用于事务处理应用程序,具有众多特性,包括ACID事务支持。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能。

ACID事务:四大特性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值