MySQL 存储引擎 MyISAM 与 InnoDB 如何选择

MySQL的InnoDB和MyISAM是常用的存储引擎,各有优劣。InnoDB支持事务和行级锁,适合事务处理;MyISAM性能优秀,占用空间少,查询速度快,适合高并发查询。全表锁和读写串行问题是MyISAM的挑战,现代应用更多倾向于选择InnoDB以获取事务保障。选择存储引擎应根据应用程序的具体需求,如并发性、事务处理和查询性能等进行权衡。
摘要由CSDN通过智能技术生成

MySQL 有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用:MyISAM、InnoDB、MERGE、MEMORY (HEAP)、BDB (BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。

虽然 MySQL 里的存储引擎不只是 MyISAM 与 InnoDB 这两个,但常用的就是两个。
关于 MySQL 数据库提供的两种存储引擎,MyISAM 与 InnoDB 选择使用:

1.INNODB 会支持一些关系数据库的高级功能,如事务功能和行级锁,MyISAM 不支持。
2.MyISAM 的性能更优,占用的存储空间少,所以,选择何种存储引擎,视具体应用而定。

如果你的应用程序一定要使用事务,毫无疑问你要选择 INNODB 引擎。但要注意,INNODB 的行级锁是有条件的。在 where 条件没有使用主键时,照样会锁全表。比如 DELETE FROM mytable 这样的删除语句。

如果你的应用程序对查询性能要求较高,就要使用 MyISAM 了。MyISAM 索引和数据是分开的,而且其索引是压缩的,可以更好地利用内存。所以它的查询性能明显优于 INNODB。压缩后的索引也能节约一些磁盘空间。MyISAM 拥有全文索引的功能,这可以极大地优化 LIKE 查询的效率。

有人说 MyISAM 只能用于小型应用,其实这只是一种偏见。如果数据量比较大,这是需要通过升级架构来解决,比如分表分库,而不是单纯地依赖存储引擎。

现在一般都是选用 innodb 了,主要是 MyISAM 的全表锁,读写串行问题,并发效率锁表,效率低,MyISAM 对于读写密集型应用一般是不会去选用的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值