标签:数据库引擎
MyISAM
MyISAM引擎是MySQL关系数据库管理系统的默认存储引擎(5.5.xx版本之前),这种MySQL表存储结构从就的ISAM代码扩展出许多有用的功能,在新版的MYSQL中InnoDB引擎由于对事物参照的完整性,已经更高并发性等优点开始逐渐取代MyISAM引擎
MyISAM引擎特点:
1、不支持事物(事物是指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败)
2、表级锁定(更新是锁整个表)。其锁定机制是表级索引,这虽然可以让锁定的实现成本很小,但是也同时大大降低了其并发性能
3、读写相互阻塞。不仅会在写入的时候阻塞读取,MyISAM还会在读取的时候阻塞写入,但是读本身不会阻塞其他读取。
4、只缓存索引。MyISAM可以通过key_buffer_size缓存索引,以大大提高访问性能,减少磁盘IO,但是这个缓存区只会缓存索引,不会缓存数据
5、读取速度快,占用资源相对少
6、不支持外键约束,但是支持全文索引
7、MyISAM引擎是mysql5.5.xx前的默认存储引擎。
MyISAM应用场景:
1、不需要支持事务的业务。如银行转账等肯定不支持
2、一般用于读数据较多的引用。读写都频繁的场景不适用,读多或者写多都可以。
3、读写并发访问相对较低的业务(纯读或者纯写高并发也可以)(锁定机制问题)
4、数据修改相对较少的业务(阻塞问题)
5、以读为主的业务。例如:www、blog、图片信息数据,用户数据库,商品库等业务
6、对数据一致性要求不是很高的业务
7、硬件资源相对差的服务器可以使用MyISAM
MyISAM引擎调优精要
1、设置合适的索引(缓存机制)
2、调整读写优先级,根据实际需求确保重要操作更优先执行
3、启用延迟插入改善大批量写入性能(降低写入频繁,尽可能多条一次性写入)
4、尽量顺序操作让insert数据都写入到尾部,减少阻塞
5、分解大的操作,减低单个操作的阻塞时间
6、减低并发数(减少mysql访问),某些高并发场合通过应用进行排队队列机制
7、对于相对静态(更改不频繁)的数据库数据,充分利用query cache或者memcached缓存服务可以极大的提高访问效率
8、可以把主从同步中的主库使用innodb,从库使用MyISAM
###########################################################################################
###########################################################################################
###########################################################################################
InnoDB引擎
InnoDB引擎是MySQL数据库另外一个重要的引擎,正成为目前 MySQL 数据库所发行的新版的标准,被包含在所以二进制安装包里,和其他的引擎相比, InnoDB引擎的优点时兼容ACID的事务,已经参数完整性(即支持外键)。
InnoDB引擎特点
1、支持事务。支持4个事务隔离级别,支持多版本读。
2、行级锁定(更新是一般是锁定当前行).通过索引实现,全表扫描仍然会使表锁。注意间隙锁的影响
3、读写阻塞与事务隔离级别相关
4、具有非常高效的缓存特性,能缓存索引,也能缓存数据
5、整个表和主键以cluster方式存储,组成一颗平衡树
6、所有secondary index都会保存主键信息
7、支持分区,表空间,类似oracle数据库
8、支持外键约束,不支持全文索引5.5以前。5.5之后支持
InnoDB引擎应用场景
1、需要事务支持的业务(具有较好的事务特性)
2、行级锁定对高并发有很好的适应能力,但是需要确保查询是通过索引完成
3、数据读写以及更新较为频繁的场景,如BBS/SNS/微博、微信等等
4、数据一致性要求较高的业务。如银行转账等
5、硬件设备内存较大,可以利用 InnoDB较好的缓存功能来提供内存利用率,尽可能减少磁盘IO
6、相比 MyISAM引擎,innodb引擎更加消耗资源,速度没有 MyISAM引擎快
InnoDB引擎调优精要
1、主键尽可能小,避免给 Secondary index带来过大的空间负担
2、避免全表扫描,因为全表扫描还是会使用表锁
3、尽可能缓存索引的数据,提高响应速度,减少磁盘IO消耗
4、在大批量小插入的时候,尽量自己控制事务而不要使用autocommit自动提交。有开关可以控制提交方式
5、合理设置innodb_flush_log_at_trx_commit参数值,不要过度追求安全
6、避免主键更新,因为这会带来大量数据移动
本文出自 “奋斗吧” 博客,请务必保留此出处http://lvnian.blog.51cto.com/7155281/1699850
标签:数据库引擎
原文地址:http://lvnian.blog.51cto.com/7155281/1699850