数据库存储引擎innodb与myisam
一、innodb与myisam的区别与取舍、innodb引擎的4大特性 如下是两者的索引图: 两者的 相同点 :两者都是mysql的常用引擎;两者的索引都是B+树 两者的 区别 : 事务:InnoDB支持,MyISAM不支持 外键:InnoDB支持,MyISAM不支持 索引类型:InnoDB是聚簇索引(叶子节点存数据),MyISAM是非聚簇索引(叶子节点存指针) 插入速度:MyISAM批量插入速度快 查询行数:MyISAM的查询性能会比InnoDB强,InnoDB查询表行数要全表扫描,MyISAM存在变量中直接读取 内存空间使用率:InnoDB比MyISAM高 全文索引:MyISAM支持。Innodb不支持,5.7以后才支持 压缩查询:MyISAM表格可以被压缩后进行查询操作 锁级别:InnoDB支持表级锁+(默认)行级锁,而MyISAM支持表级锁 主键:InnoDB必须有,MyISAM可没有 存储文件:Innodb存储文件有frm、ibd,而Myisam是frm、MYD、MYI PS1:InnoDB的 行锁是实现在索引上 的,而不是锁在物理行记录上。潜台词是,如果访问没有命中索引,也无法使用行锁,将要退化为表锁。 举个例子:t_user(uid, uname, age, sex) innodb; uid PrimaryKey,无其他索引 update t_user set age