MysqL数据表类型

腾讯面试提及

参照来源:http://database.51cto.com/art/201011/234306.htm

四种不一样表类型

MySQL实际上援助多样不一样的表类型.那五连串型分别是BDB、HEAP、ISAM、ME君越GE以及MyISAM。当中BDB类型单独属于一类,称为“事务安全型”(transaction-safe),其他的表类型属于第1类,称为“非事务安全型”(non-transaction-safe)。

1,ISAM数据表
mysql3.23版本以前的MySQL支特的唯一一种表类型,最近己经过时,MyIASM处理程库逐步取代了ISAM处理程序,那种老式的表
类型己经没有人在用了数据表在硬盘上的文书存款和储蓄情势:IASM Frm isd ism

2,MyIASM数据表
那是时下中MySQL私下认可使用的数据表类型。其独到之处是

  • 要是主机操作系统援救大尺寸文件,数据表长度就能够极大,就能客纳更多的数据.
  • 数据表内容独立于硬件也正是说能够把数据表在机器之间自由拷贝
  • 增进了目录方面包车型大巴机能
  • 提供了更好的索引键压缩效果
  • auto_incremnet能力增强
  • 立异了对数据表的完整性检查机制
  • 帮衬开始展览fulltext全文本搜索

数据表在硬盘上的文书存款和储蓄格局:MyISAM Frm myd myi

3,Merge数据表

那是一种把相同结构的MyIASM数据表协会为一个逻辑单元的办法

数据表在硬盘上的公文存款和储蓄格局:Merge Frm mrg

4,HEAP数据表
那是一种选拔内存的数据表,而且种种数据行的长短固定,那三个特点使得那连串型数据表的查找速度尤其快,作为一种近来的数据表,HEAP在好几特定情景下很有用。

数据表在硬盘上的文书存款和储蓄方式:Heap Frm

5,BDB数据表
那种数据表辅助事务处理机制,具有可以的产出质量

数据表在硬盘上的公文存款和储蓄情势:BDB Frm db

6,InnoDB数据表
那是近期到场MySQL的数码表类型,有广大新的天性
协理事务处理机制
崩溃后能够及时苏醒
帮衬外键功能,包罗级联删除
装有并发功能

数据表在硬盘上的文件存储格局:InnoDB frm

参照来源:http://www.nowamagic.net/database/db_TypeOfTable.php

同Oracle 和SQL
Server等大型数据库系统一样,MySql也是客户/服务器系统还假如单进度多线程架构的数据库。

MySql分歧于任何数据库系统的三个根本特色是帮衬插入式存款和储蓄引擎。

怎么着是储存引擎

储存引擎说白了正是怎么样存款和储蓄数据、如何为存款和储蓄的数目建立目录和什么翻新、查询数据等技巧的贯彻形式。因为在关周到据库中数量的囤积是以表的款型储存的,所以存款和储蓄引擎也得以叫做表类型(即存款和储蓄和操作此表的项目)。

在Oracle 和SQL
Server等数据库中唯有一种存款和储蓄引擎,全部数据存款和储蓄管理机制都以均等的。而MySql数据库提供了各种储存引擎。用户能够依据分化的须求为数据表选拔差异的储存引擎,用户也足以依据本人的必要编写制定自个儿的贮存引擎。

MySql中有何样存款和储蓄引擎?

  1. MyISAM:那种斯特林发动机是mysql最早提供的。不管是何种MyISAM表,如今它都不援助理工科程师作,行级锁和外键约束的职能。那种斯特林发动机又可以分成静态MyISAM、动态MyISAM
    和压缩MyISAM三种:

    • 静态MyISAM:如若数量表中的各数据列的尺寸都以先行固定好的,服务器将活动采取这种表类型。因为数据表中每一条记下所占有的半空中都以千篇一律的,所以那种表存取和创新的频率格外高。当数码受损时,复苏工作也正如便于做。

    • 动态MyISAM:假设数量表中出现varchar、xxxtext或xxxBLOB字段时,服务器将自行选拔那种表类型。绝对于静态MyISAM,那种表存款和储蓄空间相比较小,但由于每条记下的长度不一,所以屡屡修改数据后,数据表中的多少就恐怕离散的存储在内部存款和储蓄器中,进而导致执行功用下落。同时,内存中也可能会出现众多零碎。因而,那系列型的表要常常用optimize
      table 命令或优化学工业具来开始展览零散整理。

    • 压缩MyISAM:以上说到的二种档次的表都能够用myisamchk工具压缩。那体系型的表进一步减小了占据的囤积,不过那种表压缩之后无法再被涂改。其余,因为是缩减数量,所以那种表在读取的时候要先时行解压缩。
  2. MyISAM
    Merge引擎:那连串型是MyISAM类型的一种变种。合并表是将多少个相同的MyISAM表合并为三个虚表。常采取于日志和数据仓库。

  3. InnoDB:InnoDB表类型可以作为是对MyISAM的愈发立异产品,它提供了业务、行级锁机制和外键约束的职能。
  4. memory(heap):那类别型的数据表只存在于内部存款和储蓄器中。它选用散列索引,所以数据的存取速度相当的慢。因为是存在于内存中,所以那类别型常应用于临时表中。
  5. archive:那类别型只辅助select 和
    insert语句,而且不补助索引。常选拔于日志记录和集合分析方面。

本来MySql帮忙的表类型不止上面两种。下边我们介绍一下怎样查看和装置数据表类型。

相关文章