`
tiandirensoon
  • 浏览: 597041 次
文章分类
社区版块
存档分类
最新评论

MySQL引擎

 
阅读更多

一般来说,MySQL有以下几种引擎:ISAM、MyISAM、HEAP、InnoDB和Berkley(BDB)。注意:不同的版本支持的引擎是有差异的。当然啦,如果你感觉自己的确技术高超,你还能够使用MySQL++来创建自己的数据库引擎,这个已经out of my knowledge,牛人可以参照MySQL++ API帮助来实现。下面逐一叙述这5种引擎各自的特性:


ISAM

ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到数据库被查询的次数要远大于更新的次数。因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源。ISAM的两个主要不足之处在于,它不支持事务处理,也不能够容错:如果你的硬盘崩溃了,那么数据文件就无法恢复了。如果你正在把ISAM用在关键任务应用程序里,那就必须经常备份你所有的实时数据,通过其复制特性,MySQL能够支持这样的备份应用程序。

<wbr></wbr>

MyISAM

MyISAM是MySQL的ISAM扩展格式和缺省的数据库引擎。除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作。其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间。MyISAM还有一些有用的扩展,例如用来修复数据库文件的MyISAMChk工具和用来恢复浪费空间的 MyISAMPack工具。

MyISAM强调了快速读取操作,这可能就是为什么MySQL受到了Web开发如此青睐的主要原因:在Web开发中你所进行的大量数据操作都是读取操作。所以,大多数虚拟主机提供商和Internet平台提供商(Internet Presence Provider,IPP)只允许使用MyISAM格式。

<wbr></wbr>

HEAP

HEAP允许只驻留在内存里的临时表格。驻留在内存里让HEAP要比ISAM和MyISAM 都快,但是它所管理的数据是不稳定的,而且如果在关机之前没有进行保存,那么所有的数据都会丢失。在数据行被删除的时候,HEAP也不会浪费大量的空间。 HEAP表格在你需要使用SELECT表达式来选择和操控数据的时候非常有用。要记住,在用完表格之后就删除表格。让我再重复一遍:在你用完表格之后,不要忘记删除表格。

<wbr></wbr>

InnoDB和Berkley DB

InnoDB和Berkley DB(BDB)数据库引擎都是造就MySQL灵活性的技术的直接产品,这项技术就是MySQL++ API。在使用MySQL的时候,你所面对的每一个挑战几乎都源于ISAM和MyISAM数据库引擎不支持事务处理也不支持外来键。尽管要比ISAM和 MyISAM引擎慢很多,但是InnoDB和BDB包括了对事务处理和外来键的支持,这两点都是前两个引擎所没有的。如前所述,如果你的设计需要这些特性中的一者或者两者,那你就要被迫使用后两个引擎中的一个了。

<wbr></wbr>

认识完了这么多的引擎,我们也知道了它们应该在什么情况下拿来应急,那么接着我们就要学会如何来更换这些引擎了。

Globle:一种最简单的方法就是更改服务器配置,直接将其设置成你所需要的引擎。这个在 win下通过更改服务器安装目录下的mysql.ini中的default-storage-engine项即可,也可以通过运行MySQL Server Instance Configuration Wizard做简单的设置。

Per Table:除了全局的方法外,还有一种更灵活的配置方法,那就是按表来设置引擎,这样我们就可以把那些需要用到事务处理的表设置成InnoDB,其他设置成MyISAM,将性能提升到极致,这是不是很令人兴奋呢?设置方法也比较简单:

1、你可以在Create Table语句的最后添加扩展语句,如TYPE=MyISAM(或者ENGINE = INNODB)来指定当前标的引擎类型。也可以用Alter语句在建立表个后进行更改。当你不清楚当前数据库中各表的引擎时可以使用SHOW TABLE STATUS FROM DBname来查看。

2、使用随MySQL服务器发布同时提供的MySQL客户端来创建表,在创建时可以选择使用的存储引擎。

不同的引擎选择在不同的业务处理上,性能将有天壤之别!!

分享到:
评论

相关推荐

    mySql引擎相关知识

    mySql引擎相关知识

    MySQL存储引擎解析.doc

    mysql存储引擎是mysql组件中的一部分,而MySQL组成是由、管理工具、连接池、SQL接口、分析器、优化器、缓存、存储引擎、硬盘组成的,而mysql存储引擎就是mysql组成中的一个功能模块,存储引擎属于表的处理器

    .net使用MYSQL数据库引擎

    若何用mysql-connector-net-6.2.2.rar 来进行mysql数据库数据调用的详细使用方法,亲自测试通过。比.net自带引擎访问数据效率高。

    mysql引擎及索引讲解

    数据库引擎是用于存储、处理和保护数据的核心服务。利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。 使用数据库引擎创建用于联机事务处理或联机分析处理数据...

    mysql中的表引擎

    刚刚学习的MySQL,上传也是希望大神们能够指点一二。不许说写得差,不接受任何反驳~~~~

    MySql 存储引擎介绍

    MySQL体系结构 MySQL存储引擎 InnoDB存储引擎

    mysql-存储引擎-实验四.docx

    mysql-存储引擎

    用纯PHP编写MySQL引擎-PHP开发

    PHP MySQL引擎这是Scott Sandler创建的Slack的Hack SQL FakePHP端口。 PHP MySQL Engine是PHP的单元测试库。 它可以使用MySQL的内存模拟来测试数据库驱动的应用程序。 它支持各种查询,事务等。 该项目扩展了PDO类,...

    php-mysql-engine:用纯PHP编写MySQL引擎

    PHP MySQL引擎PHP MySQL Engine是PHP的库,可让您使用MySQL 5.6的内存模拟来测试数据库驱动的应用程序。 该项目扩展了PDO类,并允许您调用常见的PDO MySQL方法。 它支持各种查询以及某些PDO特定的功能,例如事务和...

    MySQL从入门到高级系列视频.zip

    13.MySQL引擎MyISAM与InnoDB讲解.mp4 14.MySQL数据库索引及慢查询讲解.mp4 15.MySQL数据库高效优化解析.mp4 16.构建MySQL+keepalived高可用自动切换.mp4 17.构建MySQL+DRBD+Keepalived高可用集群.mp4

    mysql存储引擎比较

    mysql存储引擎比较

    MySQL存储引擎简介

    MySQL内部存储引擎介绍,两大类引擎InnoDB和MyISM介绍

    mysql搜索引擎介绍

    mysql搜索引擎分类,及每种搜索引擎的简单分类和作用

    MySQL数据库引擎快速指导

    MySQL数据库为开发人员所做的就好像是按按钮换引擎;它让你选择数据库引擎,并给你一条简单的途径来切换它。MySQL的自带引擎肯定是够用了,但是在有些情况下,其他的引擎可能要比手头所用更适合完成任务。如果愿意的...

    mysql内核 innodb存储引擎

    《MySQL技术内幕:InnoDB存储引擎》是国内目前唯一的一本关于InnoDB的著作,由资深MySQL专家亲自执笔,中外数据库专家联袂推荐,权威性毋庸置疑。内容深入,从源代码的角度深度解析了InnoDB的体系结构、实现原理、...

    MySQL技术内幕 InnoDB存储引擎.pdf

    最近在学习MySQL技术内幕 InnoDB存储引擎 第2版,整理了一些文档分享出来,同时也方便以后查看。若有不当之处,烦请批评指正。 1. MySQL体系结构和存储引擎 2. InnoDB存储引擎 2.1 InnoDB体系结构 2.2 ...

    mySql 存储引擎 启用 Innodb

    mySql 存储引擎 启用 Innodb

    mysql入门到高级.docx

    11. MySQL 引擎MyISAM 与InnoDB 讲解.................48 12. MySQL 数据库索引及慢查询讲解................51 13. MySQL 数据库高效优化解析................ 53 14. MySQL 日常故障解决方案.................

    Mysql 存储引擎和索引揭秘

    Mysql 存储引擎和索引揭秘 ,都是非常重要的概念,面试会问到

    mysql存储引擎介绍

    详细介绍了mysql的四种引擎的区别和各自的优势 和使用引擎的环境

Global site tag (gtag.js) - Google Analytics