MySQL数据库几种存储引擎的功能和特性

北京市那家医院治白癜风好 https://yyk.39.net/bj/zhuanke/89ac7.html
MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站的数据库。存储引擎是MySQL数据库的重要组成部分之一,也是在不同应用场景下,对MySQL数据库进行设置的重要考察点之一。本文将介绍MySQL数据库几种存储引擎的功能和特性。MySQL存储引擎InnoDB存储引擎:是面向OLTP(OnlineTransactionProcessing)、行锁、支持外键、非锁定读,MySQL-4.1开始支持每个InnoDB引擎的表单独放倒一个表空间里。InnoDB通过使用MVCC来获取高并发性,并且实现SQL的4种隔离级别,同时使用一种被称为next-keylocking的策略来避免换读(phantom)现象。除此之外,InnoDB引擎还提供了插入缓存(insertbuffer)、二次写(doulbewrite)、自适应哈希索引(adaptivehashindex)、预读(readahead)等高性能技术。MyISAM存储引擎:不支持事务、表锁、全文索引、适合olap(在线分析处理)应用,其中myd:放数据文件,myi:放索引文件。MySQL-5.0版本之前,MyISAM默认支持的表大小为4G,从MySQL-5.0以后,MyISAM默认支持T的表单数据。MyISAM只缓存索引数据。NDB存储引擎:集群存储引擎,sharenothing,特点是数据放在内存中,可提高可用性。MySQL-5.1版本开始可以将非索引数据放到磁盘上。NDB之前的缺陷是join查询是MySQL数据库层完成的,而不是存储引擎完成的,复杂的join查询需要巨大的网络开销,速度很慢。当前MySQLcluster7.2版本中已经解决此问题,join查询效率提高了70倍。MySQL还支持Memory存储引擎、Archive存储引擎、Maria存储引擎。本文不再一一赘述。


转载请注明:http://www.aierlanlan.com/grrz/6910.html