Mysql数据库优化篇 –InnoDB 和 MyISAM 优缺点

MyISAM

MyISAM优点:
  1. 可以快速查询唯一值
  2. 支持全文搜索
  3. 选择Count(*)的速度很快
  4. 磁盘空间占用少

MyISAM缺点:
  1. 表级别锁,如果程序的写入操作点总时间的5%以上,则表锁会减慢程序的速度
  2. 不支持事务的能力
  3. 有持久性问题,表崩溃需要冗长的修复操作才可以恢复

InnoDB

InnoDB优点:
  1. 支持事务能力
  2. 具有行级的锁定功能,并发写入同一表时不会被序列化
  3. 支持多种联机备份策略
  4. 提高了程序在高负载,高并发下的能力.

InnoDB缺点:
  1. 选择count(*)很慢,它需要计算行.
  2. 没有全文搜索.
  3. 自增字段必需是第一字段,在迁移时可能会导致问题.
  4. 用更多的磁盘空间.
  5. 简单的查表速度不如MyISAM,但复杂的,多个表的查询速度则起过了MyISAM.

选择引擎的总结:

  1. 程序执行的大部分时间是读操作(95%以上)则应该选择MyISAM.
  2. 当事务性和一致性非常重要时,应该选择InnoDB.
  3. 当你有一个包含很多连接表的复杂模式时.应该选择InnoDB.
  4. 当不间断操作非常重要时,如果全天24*7的运行,建议选择InnoDB.

发表评论

电子邮件地址不会被公开。 必填项已用*标注