mysql存储引擎
常用的存储引擎
① Innodb:行(记录)锁,事务(回滚),外键,全文索引。mysql版本>=5.5 中默认的存储引擎,MySql推荐使用的存储引擎
② Myisam:表锁,全文索引
Innodb
存储格式
innodb存储引擎 每个数据表有单独的“结构文件” .frm
数据,索引集中存储,存储于同一个表空间文件中ibdata1。
存储顺序
数据的写入顺序 与 存储顺序不一致,插入时做排序工作,效率低,速度比Myisam慢。
并发处理
选择行锁,并发能力比myisam强,
锁机制:
当客户端操作表(记录)时,为了保证操作的隔离性(多个客户端操作不能相互影响),通过加锁来处理。
操作方面:
读锁:读操作时增加的锁,也叫共享锁,S-lock。特征是所有人都只可以读,只有释放锁之后才可以写。
写锁:写操作时增加的锁,也叫独占锁或排他锁,X-lock。特征,只有锁表的客户可以操作(读写)这个表,其他客户读都不能读。
锁定粒度(范围)
表级锁:开销小,加锁快,发生锁冲突的概率最高,并发度最低。myisam和innodb都支持。
行级锁:开销大,加锁慢,发生锁冲突的概率最低,并发度也最高。innodb支持
Tips:默认情况,表锁和行锁都是自动获得的,不需要额外的命令。
myisam和innodb的取舍
innodb: 适合业务逻辑比较强的系统,修改操作较多的。例如办公系统、商城系统。
myisam: 写入数据非常快,适合写入、读取操作多的系统。
查看存储引擎