MySQL数据库引擎ISAM,myISAM,heap介绍
来源:考试大 【考试大:中国最优秀的考试信息平台】 2007年10月16日
MySQL的自带引擎肯定是够用了,但是在有些情况下,其他的引擎可能要比手头所用更适合完成任务。如果愿意的话,你甚至可以使用MySQL++ API来创建自己的数据库引擎,就像打穿气缸装上自己的化油器。现在让我们来看看你该如何选择引擎,以及如何在可用引擎之间切换。
选择你的引擎
你能用的数据库引擎取决于MySQL在安装的时候是如何被编译的。要添加一个新的引擎,就必须重新编译MySQL。仅仅为了添加一个特性而编译应用程序的概念对于Windows的开发人员来说可能很奇怪,但是在UNIX世界里,这已经成为了标准。在缺省情况下,MySQL支持三个引擎:ISAM、MyISAM和HEAP。另外两种类型InnoDB和Berkley(BDB),也常常可以使用。
ISAM
ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不支持事务处理,也不能够容错:如果你的硬盘崩溃了,那么数据文件就无法恢复了。如果你正在把ISAM用在关键任务应用程序里,那就必须经常备份你所有的实时数据,通过其复制特性,MySQL能够支持这样的备份应用程序。
MyISAM
MyISAM是MySQL的ISAM扩展格式和缺省的数据库引擎。除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作。其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间。MyISAM还有一些有用的扩展,例如用来修复数据库文件的MyISAMChk工具和用来恢复浪费空间的MyISAMPack工具。
MyISAM强调了快速读取操作,这可能就是为什么MySQL受到了Web开发如此青睐的主要原因:在Web开发中你所进行的大量数据操作都是读取操作。所以,大多数虚拟主机提供商和Internet平台提供商(Internet Presence Provider,IPP)只允许使用MyISAM格式。
HEAP
HEAP允许只驻留在内存里的临时表格。驻留在内存里让HEAP要比ISAM和MyISAM都快,但是它所管理的数据是不稳定的,而且如果在关机之前没有进行保存,那么所有的数据都会丢失。在数据行被删除的时候,HEAP也不会浪费大量的空间。HEAP表格在你需要使用SELECT表达式来选择和操控数据的时候非常有用。要记住,在用完表格之后就删除表格。让我再重复一遍:在你用完表格之后,不要忘记删除表格。
InnoDB和Berkley DB
InnoDB和Berkley DB(BDB)数据库引擎都是造就MySQL灵活性的技术的直接产品,这项技术就是MySQL++ API。在使用MySQL的时候,你所面对的每一个挑战几乎都源于ISAM和MyISAM数据库引擎不支持事务处理也不支持外来键。尽管要比ISAM和MyISAM引擎慢很多,但是InnoDB和BDB包括了对事务处理和外来键的支持,这两点都是前两个引擎所没有的。如前所述,如果你的设计需要这些特性中的一者或者两者,那你就要被迫使用后两个引擎中的一个了。
如果感觉自己的确技术高超,你还能够使用MySQL++来创建自己的数据库引擎。这个API为你提供了操作字段、记录、表格、数据库、连接、安全帐号的功能,以及建立诸如MySQL这样DBMS所需要的所有其他无数功能。深入讲解API已经超出了本文的范围,但是你需要了解MySQL++的存在及其可交换引擎背后的技术,这一点是很重要的。估计这个插件式数据库引擎的模型甚至能够被用来为MySQL创建本地的XML提供器(XML provider)。(任何读到本文的MySQL++开发人员可以把这一点当作是个要求。) 来
<!--EndFragment-->
分享到:
相关推荐
Java开发springboot-整合mysql-binlog-connector-java实现MySQL数据同步-源代码+文档 Java开发springboot-整合mysql-binlog-connector-java实现MySQL数据同步-源代码+文档 Java开发springboot-整合mysql-binlog-...
Java开发案例springboot-整合flink-cdc-connectors实现MySQL实时数据同步-源代码+文档 Java开发案例springboot-整合flink-cdc-connectors实现MySQL实时数据同步-源代码+文档 Java开发案例springboot-整合flink-cdc-...
机采自 2017最新统计局数据 国民经济行业分类与代码(GB/T 4754-2017),四级 mysql带上下级数据,需要三级的或者json数据的请看我的其他分享
MySQL 高级 - 索引 - 数据结构 P6 day01-07. MySQL 高级 - 索引 - 数据结构 - BTREE P7 day01-08. MySQL 高级 - 索引 - 数据结构 - B+TREE P8 day01-09. MySQL 高级 - 索引 - 索引分类 P9 day01-10. MySQL 高级 - ...
perl-DBD-MySQL-4.013-3.el6.x86_64.rpm
项目3---MySQL数据表的结构.pptx
国民经济行业分类与代码(GB/T 4754-2017)mysql数据四级
7、NIFI综合应用场景-将mysql查询出的json数据转换成txt后存储至HDFS中 网址:https://blog.csdn.net/chenwewi520feng/article/details/130620392 本文是在6、NIFI综合应用场景-离线同步Mysql数据到HDFS中基础上完成...
mysql安装教程(保姆级)---mysql-8.0.32-winx64 mysql安装教程(保姆级)---mysql-8.0.32-winx64 mysql安装教程(保姆级)---mysql-8.0.32-winx64 mysql安装教程(保姆级)---mysql-8.0.32-winx64 mysql安装教程...
单兴华CTO-学习Mysql经典教程-第02章用MySQL 处理数据.pdf 单兴华CTO-学习Mysql经典教程-第03章MySQL SQL 语法及其用法.pdf 单兴华CTO-学习Mysql经典教程-第04章查询优化.pdf 单兴华CTO-学习Mysql经典教程-第05章...
go-mysql-elasticsearch - 自动同步你的MySQL数据到Elasticsearch
Spring Boot使用spring-data-jpa配置Mysql多数据源,可用版本
cas-server-webapp 4.0.0添加mysql数据源
单兴华CTO-学习Mysql经典教程-第02章用MySQL 处理数据.pdf 单兴华CTO-学习Mysql经典教程-第03章MySQL SQL 语法及其用法.pdf 单兴华CTO-学习Mysql经典教程-第04章查询优化.pdf 单兴华CTO-学习Mysql经典教程-第05章...
6、NIFI应用场景-离线同步Mysql数据到HDFS中 网址:https://blog.csdn.net/chenwewi520feng/article/details/130619480 本文旨在说明将mysql数据同步至HDFS中,并进行验证。阅读本文前最好是阅读本系列的前面文章...
mysql-存储引擎
MSSQL-to-MySQL v5.3. 最好的MSSQL=>MySQL 数据库迁移工具! 绿色版 该软件官方网站:http://www.convert-in.com/mss2sql.htm
Oracle 示例方案数据脚本 Mysql版,可用于在mysql中创建Oracle示例方案数据库
在windows下将Apache-2.4.9-Mysql-5.6.17-php5.5.12 集成环境,拥有简单的图形和菜单安装和配置环境。PHP扩展、Apache模块,开启/关闭鼠标点点就搞定,再也不用亲自去修改配置文件了,WAMP它会去做。 WampServer是...
从geoserver官网下载的安装包是不包含mysql插件的,如果需要创建mysql数据存储就需要自己手动安装mysql插件。下载解压后,将里面包含的两个jar包放到geoserver包的WEB-INF\lib目录下,然后重启geoserver即可