一、InnoDB 与 MyISAM 的区别:
- InnoDB
InnoDB 是 MySQL 的默认存储引擎,支持事务、行锁和外键等操作,是聚集索引;因为支持行锁,操作时只锁一行,不对其他行有影响,所以适合高并发的操作。InnoDB 不仅缓存索引,还会缓存真实数据,所以对内存要求较高,内存的大小对性能有决定性的影响。 - MyISAM
MyISAM 是 MySQL5.1 版本前的默认存储引擎,不支持事务和外键等操作,是非聚集索引;MyISAM 默认锁级别是表锁,即使操作一条记录也会锁住整个表,所以并发性比较差,不适合高并发的操作。同时 MyISAM 只缓存索引,不缓存真实数据。
二、如何选择引擎?
MyISAM:出现大量只读的情况用 MyISAM,比如博客系统、新闻门户网站。
InnoDB :有频繁的读写操作时用 InnoDB 比如 OA办公系统。