关于MySQL数据库存储引擎的功能和特性

存储技术

606人已加入

描述

MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站的数据库。存储引擎是MySQL数据库的重要组成部分之一,也是在不同应用场景下,对MySQL数据库进行设置的重要考察点之一。本文将介绍MySQL数据库几种存储引擎的功能和特性。

InnoDB存储引擎:是面向OLTP(Online Transaction Processing)、行锁、支持外键、非锁定读,MySQL-4.1开始支持每个InnoDB引擎的表单独放倒一个表空间里。InnoDB通过使用MVCC来获取高并发性,并且实现SQL的4种隔离级别,同时使用一种被称为next-key locking的策略来避免换读(phantom)现象。除此之外,InnoDB引擎还提供了插入缓存(insert buffer)、二次写(doulbe write)、自适应哈希索引(adaptive hash index)、预读(read ahead)等高性能技术。

MyISAM存储引擎:不支持事务、表锁、全文索引、适合olap(在线分析处理)应用,其中myd:放数据文件,myi:放索引文件。MySQL-5.0版本之前,MyISAM默认支持的表大小为4G,从MySQL-5.0以后,MyISAM默认支持256T的表单数据。MyISAM只缓存索引数据。

NDB存储引擎:集群存储引擎,share nothing,特点是数据放在内存中,可提高可用性。MySQL-5.1版本开始可以将非索引数据放到磁盘上。NDB之前的缺陷是join查询是MySQL数据库层完成的,而不是存储引擎完成的,复杂的join查询需要巨大的网络开销,速度很慢。当前MySQL cluster7.2版本中已经解决此问题,join查询效率提高了70倍。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分