数据库引擎有哪些种类,mysql数据库的引擎和表引擎的区别
来源:整理 编辑:黑码技术 2024-10-20 15:25:48
本文目录一览
1,mysql数据库的引擎和表引擎的区别
这个是考虑性能的问题,还有事务的支持,吧 百度一下你就知道MyISAM、InnoDB、Heap(Memory)、NDB 貌似一般都是使用 InnoDB的,mysql的存储引擎包括:MyISAM、InnoDB、BDB、MEMORY、MERGE、EXAMPLE、NDBCluster、ARCHIVE、CSV、BLACKHOLE、FEDERATED等,其中InnoDB和BDB提供事务安全表,其他存储引擎都是非事务安全表。最常使用的2种存储引擎:1.Myisam是Mysql的默认存储引擎,当create创建新表时,未指定新表的存储引擎时,默认使用Myisam。每个MyISAM在磁盘上存储成三个文件。文件名都和表名相同,扩展名分别是.frm(存储表定义)、.MYD(MYData,存储数据)、.MYI(MYIndex,存储索引)。数据文件和索引文件可以放置在不同的目录,平均分布io,获得更快的速度。2.InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。但是对比Myisam的存储引擎,InnoDB写的处理效率差一些并且会占用更多的磁盘空间以保留数据和索引。不知道是不是对你有帮助
2,常用的存储引擎有哪些
MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用: MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。 MySQL支持数个存储引擎作为对不同表的类型的处理器。MySQL存储引擎包括处理事务安全表的引擎和处理非事务安全表的引擎: · MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。MyISAM在所有MySQL配置里被支持,它是默认的存储引擎,除非你配置MySQL默认使用另外一个引擎。 · MEMORY存储引擎提供“内存中”表。MERGE存储引擎允许集合将被处理同样的MyISAM表作为一个单独的表。就像MyISAM一样,MEMORY和MERGE存储引擎处理非事务表,这两个引擎也都被默认包含在MySQL中。 注释:MEMORY存储引擎正式地被确定为HEAP引擎。 · InnoDB和BDB存储引擎提供事务安全表。BDB被包含在为支持它的操作系统发布的MySQL-Max二进制分发版里。InnoDB也默认被包括在所 有MySQL 5.1二进制分发版里,你可以按照喜好通过配置MySQL来允许或禁止任一引擎。 · EXAMPLE存储引擎是一个“存根”引擎,它不做什么。你可以用这个引擎创建表,但没有数据被存储于其中或从其中检索。这个引擎的目的是服务,在 MySQL源代码中的一个例子,它演示说明如何开始编写新存储引擎。同样,它的主要兴趣是对开发者。 · NDB Cluster是被MySQL Cluster用来实现分割到多台计算机上的表的存储引擎。它在MySQL-Max 5.1二进制分发版里提供。这个存储引擎当前只被Linux, Solaris, 和Mac OS X 支持。在未来的MySQL分发版中,我们想要添加其它平台对这个引擎的支持,包括Windows。
3,MySQL数据库引擎MyISAM和InnoDB的区别介绍
MySQL数据库有多种存储引擎:比如:MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE等等,最常见的也就是MyISAM和InnoDB了,下面主要讲解下MyISAM和InnoDB两种mysql数据库存储引擎的区别。 MyISAM引擎是一种非事务性的引擎,提供高速存储和检索,以及全文搜索能力,适合数据仓库等查询频繁的应用。MyISAM中,一个table实际保存为三个文件,.frm存储表定义,.MYD存储数据,.MYI存储索引。MyISAM在所有MySQL配置里被支持,它是默认的存储引擎,除非你配置MySQL默认使用另外一个引擎。 MySQL服务器中的其他非事务性存储引擎(如MyISAM)遵从不同的数据完整性范例,称之为“原子操作”。按照事务术语,MyISAM表总能高效地工作在AUTOCOMMIT=1模式下。原子操作通常能提供可比较的完整性以及更好的性能。与经过优化调整的最快的事务性表相比,它的速度快3~5倍。由于MySQL服务器支持两种范例,因而你能决定是否利用原子操作的速度更好地服务于你的应用程序,或使用事务特性。该选择可按表进行。 InnoDB则是一种支持事务的引擎。给MySQL提供了具有提交,回滚和崩溃恢复能力的事务安全(ACID兼容)存储引擎。所以的数据存储在一个或者多个数据文件中,支持类似于Oracle的锁机制。一般在OLTP应用中使用较广泛。如果没有指定InnoDB配置选项,MySQL将在MySQL数据目录下创建一个名为ibdata1的自动扩展数据文件,以及两个名为ib_logfile0和ib_logfile1的日志文件。 InnoDB锁定在行级并且也在SELECT语句提供一个Oracle风格一致的非锁定读。这些特色增加了多用户部署和性能。没有在InnoDB中扩大锁定的需要,因为在InnoDB中行级锁定适合非常小的空间。InnoDB也支持FOREIGN KEY强制。在SQL查询中,你可以自由地将InnoDB类型的表与其它MySQL的表的类型混合起来,甚至在同一个查询中也可以混合。 InnoDB是为处理巨大数据量时的最大性能设计。它的CPU效率可能是任何其它基于磁盘的关系数据库引擎所不能匹敌的。InnoDB存储引擎被完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。 InnoDB存储它的表&索引在一个表空间中,表空间可以包含数个文件。InnoDB表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上。InnoDB也默认被包括在所有MySQL 5.1二进制分发版里。
4,关于几种常见的数据库系统
access是微美国软公司出的~是Office办公软件的一部分~比较常用的是access2000/XP/2003~Office 97早就淘汰了~最新版是access2007~我用了界面不太习惯~foxpro~他不叫这个哦~他叫Visual Fox~简称VF~也是美国微软公司出的~现在很少有人用~主要是考二级用~比较熟悉的是98年出的VF 6.0~他是VS6.0的一部分~也有单独安装版~之前出过5.0~2002了VS.Net2002~这里面就不再有VF了~VF7.0就单独发布了~VS2003.Net时~出了VF8.0最新版VS2005~还是没有他~他还是单独发售~出来了VF9.0~可见落寞了啊~国内还都在用6.0~oracel是oracel公司的主打产品~中文叫甲骨文公司~他老总前几年是世界第四富~超有钱~主要用于大型企业~7/8/9都有人用~最新版是10g~不过今年美国评测他的安全系数最低~公司英文名: Oracel Corporation国别: 美国成立时间: 1977总部所在地: 硅谷全球年收入: 118亿美元(2005财年)全球雇员人数: 超过50,000名是否上市: 纳斯达克NASDAQ公司简介:甲骨文公司(Oracle)是世界领先的信息管理软件供应商和世界最大的企业软件公司。甲骨文公司总部设在美国加利福尼亚州的红木城,全球员工超过50,000名,2005财年收入达到118亿美元,是《财富》全球500强企业,服务遍及全球145个国家,为客户提供数据库、工具和应用软件以及相关的咨询、培训和支持服务。2005年,Oracle并购了全球领先的人力资源软件提供商PeopleSoft,这次合并已成为软件行业发展的重要转折点。 Mysql是数据库领域的中间派。它缺乏一个全功能数据库的大多数主要特征,但是又有比类似Xbase记录存储引擎更多的特征。它象企业级RDBMS那样需要一个积极的服务者守护程序,但是不能象他们那样消费资源。查询语言允许复杂的连接(join)查询,但是所有的参考完整必须由程序员强制保证。 MySQL在Linux世界里找到一个位置-提供简洁和速度,同时仍然提供足够的功能使程序员高兴。数据库程序员将喜欢其查询功能和广泛的客户库,数据库管理员会觉得系统缺乏主要数据库功能,他们会发觉它对简单数据库(在不能保证购买大牌数据库时)是有价值的。最新版是5.1~版本太多了~SQL是最常用的数据库软件~他是美国微软公司出的~有SQL 97/2000/2005~最好的是SQL 2000 SP4版~被评为最安全的数据库~最新版就是SQL 2005~还有一个你可能不知道~就是DB2~是IBM的数据库~不过用的很少~主要用于IBM服务器~
5,mysql中myisaminnodb和memory三个存储引擎的区别
1、区别:1) MyISAM管理非事务表。提供高速存储和检索,以及全文搜索能力。MyISAM在所有MySQL配置里被支持,是默认的存储引擎,除非配置MySQL默认使用另外一个引擎。2)MEMORY存储引擎提供“内存中”表。MERGE存储引擎允许集合将被处理同样的MyISAM表作为一个单独的表。就像MyISAM一样,MEMORY和MERGE存储引擎处理非事务表,这两个引擎也都被默认包含在MySQL中。注释:MEMORY存储引擎正式地被确定为HEAP引擎。3)InnoDB和存储引擎提供事务安全表,默认被包括在所 有MySQL 5.1二进制分发版里,可以按照喜好通过配置MySQL来允许或禁止任一引擎。2、功能点简介1)MyISAM存储引擎MyISAM存储引擎不支持事务,不支持行级锁,只支持并发插入的表锁,主要用于高负载的select。myisam类型的表支持三种不同的存储结构:静态型、动态型、压缩型。(1)静态型:就是定义的表列的大小是固定(即不含有:xblob、xtext、varchar等长度可变的数据类型),这样mysql就会自动使用静态myisam格式。 使用静态格式的表的性能比较高,因为在维护和访问的时候以预定格式存储数据时需要的开销很低。但是这高性能是有空间换来的,因为在定义的时候是固定的,所以不管列中的值有多大,都会以最大值为准,占据了整个空间。(2)动态型:如果列(即使只有一列)定义为动态的(xblob, xtext, varchar等数据类型),这时myisam就自动使用动态型,虽然动态型的表占用了比静态型表较少的空间,但带来了性能的降低,因为如果某个字段的内容发生改变则其位置很可能需要移动,这样就会导致碎片的产生。随着数据变化的怎多,碎片就会增加,数据访问性能就会相应的降低。(3)压缩型:如果在这个数据库中创建的是在整个生命周期内只读的表,则这种情况就是用myisam的压缩型表来减少空间的占用。2)MEMORY存储引擎:(1)memory存储引擎相比前面的一些存储引擎,有点不一样,其使用存储在内从中的数据来创建表,而且所有的数据也都存储在内存中。(2)每个基于memory存储引擎的表实际对应一个磁盘文件,该文件的文件名和表名是相同的,类型为.frm。该文件只存储表的结构,而其数据文件,都是存储在内存中,这样有利于对数据的快速处理,提高整个表的处理能力。(3)memory存储引擎默认使用哈希(HASH)索引,其速度比使用B-+Tree型要快,如果读者希望使用B树型,则在创建的时候可以引用。(4)memory存储引擎文件数据都存储在内存中,如果mysqld进程发生异常,重启或关闭机器这些数据都会消失。所以memory存储引擎中的表的生命周期很短,一般只使用一次。3)innoDB存储引擎:(1) innodb存储引擎该mysql表提供了事务,回滚以及系统崩溃修复能力和多版本迸发控制的事务的安全。(2)innodb支持自增长列(auto_increment),自增长列的值不能为空,如果在使用的时候为空的话怎会进行自动存现有的值开始增值,如果有但是比现在的还大,则就保存这个值。(3)innodb存储引擎支持外键(foreign key) ,外键所在的表称为子表而所依赖的表称为父表。(4)innodb存储引擎最重要的是支持事务,以及事务相关联功能。(5)innodb存储引擎支持mvcc的行级锁。1.myisam,innodb和memory的区别如下:2:InnoDB存储引擎2.1:InnoDB具有事务,回滚,崩溃修复能力和多版本并发的事务安全2.2:关于InnoDB的auto_increment列:2.2.1:InnoDB支持自动增长列,此列不能为空,且值必须唯一2.2.2:此列必须为主键。插入时,不指定值,默认是自增都的值。指定0或者NULL时,也 是自增后的值。指定合法且不存在的值,则此后的自动从该值开始2.3:InnoDB中的Foreign Key:InnoDB支持外键。外键所在表通常称为子表。所依赖表称为父表。且父表中,被子表关联的字段必须为父表的主键。(外键:可以简单的理解为:当对父表的数据进行更新,删除,添加时,子表的数据也会随之变化。例子很多,此处不举例)2.4:InnoDB的存储引擎及其优缺点:InnoDB存储引擎的存储格式有三个文件:.frm表结构文件,此文件存放表创建时的字段定义等信息。表的数据文件,存放在innodb_data_home_dir目录下,表的索引文件,存放在innodb_data_file_path目录下InnoDB存储引擎具有良好的ACID特性。InnoDB的缺点:读写效率相对MYISAM比较差。占用的磁盘空间比较大。2.5:InnoDB的理想使用场合:高并发,更新操作比较多的表。1.myisam,innodb和memory的区别如下:2:InnoDB存储引擎2.1:InnoDB具有事务,回滚,崩溃修复能力和多版本并发的事务安全2.2:关于InnoDB的auto_increment列:2.2.1:InnoDB支持自动增长列,此列不能为空,且值必须唯一2.2.2:此列必须为主键。插入时,不指定值,默认是自增都的值。指定0或者NULL时,也 是自增后的值。指定合法且不存在的值,则此后的自动从该值开始2.3:InnoDB中的Foreign Key:InnoDB支持外键。外键所在表通常称为子表。所依赖表称为父表。且父表中,被子表关联的字段必须为父表的主键。(外键:可以简单的理解为:当对父表的数据进行更新,删除,添加时,子表的数据也会随之变化。例子很多,此处不举例)2.4:InnoDB的存储引擎及其优缺点:InnoDB存储引擎的存储格式有三个文件:.frm表结构文件,此文件存放表创建时的字段定义等信息。表的数据文件,存放在innodb_data_home_dir目录下,表的索引文件,存放在innodb_data_file_path目录下InnoDB存储引擎具有良好的ACID特性。InnoDB的缺点:读写效率相对MYISAM比较差。占用的磁盘空间比较大。2.5:InnoDB的理想使用场合:高并发,更新操作比较多的表。需要使用事务的表。对自动灾难恢复有要求的表。3:MYISAM存储引擎:3.1:MYISAM存储引擎表的存储有三个文件:.frm文件,存储表的结构.myd文件,存储表的数据.myi文件,存储表的索引3.2:MYISAM存储引擎的存储格式3.2.1:静态型表的所有列都是静态的(定长的)。这种情况下,维护和访问预定义格式存储的数据需要的开销很低。但是,需要的空间会更多,原因是,数据在存储的时候,使 用每个列的最大空间来存储,有浪费的空间。当然,磁盘这个都不是问题。3.2.2:动态型指标的列中有动态型的列(不定长的)。优点是:使用空间少。缺点是:更新数据时,需要移动数据,产生内部碎片的同时,也降低了维护和访问的效率。对于这个问题,我们可以:(1)尽量的使用定长字段(2)使用optimize table语句,整理表中的碎片3.2.3:压缩型:针对应用程序的声明周期中,只读的数据表,我们可以通过:myisampack工具转化为MYISAM压缩表,以减少使用的磁盘空间3.4:MYISAM存储引擎的优缺点:优点:占用空间小,处理速度快(相对InnoDB来说)确定:不支持事务的完整性和并发性4:Memory存储引擎4.1:Memory存储引擎的文件存储形式Memory存储引擎也会再磁盘上形成一个 .frm的表结构文件,只是表的数据件并不以文件的形式存放在磁盘上。鉴于其数据存放在内存里,因此,访问速度更快。但需 要考虑的是:内存上数据的持久性。4.2:Memory存储引擎的索引类型默认的是哈希索引,也支持BTree索引4.3:Memory存储引擎的数据存储周期数据存放在内存上,一旦服务器关机,数据将不再存在4.4:Memory存储引擎的优缺点:Memory存储引擎不支持变长表列MySQL4.1.0之前,不支持auto_increment列4.5:Memory存储引擎的使用场合速度要求快的,临时数据丢失以后,对项目整体没有或者负面影响不大的时候。
文章TAG:
数据 数据库 引擎 哪些 数据库引擎有哪些种类