目录
五种不同表类型
什么是存储引擎
首页 数据库 mysql教程 MySQL数据表类型 = 存储引擎类型_MySQL

MySQL数据表类型 = 存储引擎类型_MySQL

Jun 01, 2016 pm 01:35 PM
数据表

bitsCN.com

腾讯面试提及

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

五种不同表类型

MySQL实际上支持五种不同的表类型.这五种类型分别是BDB、HEAP、ISAM、MERGE以及MyISAM。其中BDB类型单独属于一类,称为“事务安全型”(transaction-safe),其余的表类型属于第二类,称为“非事务安全型”(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工具压缩。这种类型的表进一步减小了占用的存储,但是这种表压缩之后不能再被修改。另外,因为是压缩数据,所以这种表在读取的时候要先时行解压缩。
  • MyISAM Merge引擎:这种类型是MyISAM类型的一种变种。合并表是将几个相同的MyISAM表合并为一个虚表。常应用于日志和数据仓库。
  • InnoDB:InnoDB表类型可以看作是对MyISAM的进一步更新产品,它提供了事务、行级锁机制和外键约束的功能。
  • memory(heap):这种类型的数据表只存在于内存中。它使用散列索引,所以数据的存取速度非常快。因为是存在于内存中,所以这种类型常应用于临时表中。
  • archive:这种类型只支持select 和 insert语句,而且不支持索引。常应用于日志记录和聚合分析方面。
  • 当然MySql支持的表类型不止上面几种。下面我们介绍一下如何查看和设置数据表类型。

    bitsCN.com
    本站声明
    本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

    热AI工具

    Undresser.AI Undress

    Undresser.AI Undress

    人工智能驱动的应用程序,用于创建逼真的裸体照片

    AI Clothes Remover

    AI Clothes Remover

    用于从照片中去除衣服的在线人工智能工具。

    Undress AI Tool

    Undress AI Tool

    免费脱衣服图片

    Clothoff.io

    Clothoff.io

    AI脱衣机

    AI Hentai Generator

    AI Hentai Generator

    免费生成ai无尽的。

    热门文章

    R.E.P.O.能量晶体解释及其做什么(黄色晶体)
    2 周前 By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.最佳图形设置
    2 周前 By 尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O.如果您听不到任何人,如何修复音频
    2 周前 By 尊渡假赌尊渡假赌尊渡假赌

    热工具

    记事本++7.3.1

    记事本++7.3.1

    好用且免费的代码编辑器

    SublimeText3汉化版

    SublimeText3汉化版

    中文版,非常好用

    禅工作室 13.0.1

    禅工作室 13.0.1

    功能强大的PHP集成开发环境

    Dreamweaver CS6

    Dreamweaver CS6

    视觉化网页开发工具

    SublimeText3 Mac版

    SublimeText3 Mac版

    神级代码编辑软件(SublimeText3)

    MySQL中的数据表压缩技术 MySQL中的数据表压缩技术 Jun 16, 2023 am 08:16 AM

    MySQL是一种常见的关系型数据库,是许多网站和应用程序的核心组件。随着数据量越来越大,如何优化MySQL的性能就变得尤为重要。其中一个关键领域是数据表的压缩,在本文中我们将介绍MySQL中的数据表压缩技术。压缩表和非压缩表MySQL中有两种类型的数据表:压缩表和非压缩表。非压缩表是MySQL默认的表类型,它使用固定长度的行格式,对数据进行存储。这意味着数据

    mysql修改数据表名 mysql修改数据表名 Jun 20, 2023 pm 05:52 PM

    MySQL修改数据表:1、首先查看数据库中所有的表,代码为:“SHOW TABLES;”;2、修改表名,代码为:“ALTER TABLE 旧表名 RENAME [TO] 新表名;”。3、检查表名是否修改成功,代码为:“SHOW TABLES;”

    MySQL中的数据表DDL操作技术 MySQL中的数据表DDL操作技术 Jun 15, 2023 pm 07:55 PM

    MySQL是一款非常流行的开源关系型数据库管理系统,它支持完整的DDL(数据定义语言)操作。DDL是用于定义和管理数据库中各种数据对象的语言,包括数据表、视图和索引等。对于数据库管理员和开发人员而言,熟练掌握MySQL中数据表DDL操作技术非常重要。本文将详细介绍MySQL中数据表DDL操作的技术和方法,并提供实际操作示例。一、创建数据表创建数据表是DDL中

    MySQL中的数据表重载技巧 MySQL中的数据表重载技巧 Jun 15, 2023 pm 11:28 PM

    MySQL是一种开源关系型数据库管理系统,它的基本功能在数据库设计、数据存储和管理方面非常优秀。在MySQL中,数据表是数据存储的最基本单元。在实际应用中,数据表的重载是一种非常常见的操作技巧,它可以帮助我们提高数据库的运行效率,提升系统的稳定性。本文将从MySQL中数据表重载的概念、原理和实践应用等方面详细介绍这一操作技巧。一、什么是数据表重载数据表重载是

    利用MySQL的AVG函数计算数据表中数字列的平均值方法 利用MySQL的AVG函数计算数据表中数字列的平均值方法 Jul 24, 2023 pm 09:52 PM

    利用MySQL的AVG函数计算数据表中数字列的平均值方法简介:MySQL是一种开源的关系型数据库管理系统,拥有丰富的内置函数来处理和计算数据。其中,AVG函数是用于计算数字列的平均值的函数。本文将介绍如何使用AVG函数来计算MySQL数据表中数字列的平均值,并提供相关的代码示例。一、创建示例数据表首先,我们需要创建一个示例数据表来进行演示。假设我们有一个名为

    如何实现MySQL底层优化:数据表的水平和垂直分割策略 如何实现MySQL底层优化:数据表的水平和垂直分割策略 Nov 08, 2023 pm 06:57 PM

    如何实现MySQL底层优化:数据表的水平和垂直分割策略,需要具体代码示例引言:在大型应用场景下,MySQL数据库经常面临着海量数据的存储和查询压力。为了解决这个问题,MySQL提供了数据表的分割策略,包括水平分割(HorizontalPartitioning)和垂直分割(VerticalPartitioning)。本文将介绍如何实现MySQL底层优化,重

    MySQL中如何使用MAX函数找到数据表中最大的数值 MySQL中如何使用MAX函数找到数据表中最大的数值 Jul 25, 2023 pm 09:49 PM

    MySQL中如何使用MAX函数找到数据表中最大的数值引言:在MySQL中,我们经常需要对数据表进行各种查询和分析,其中包括找出数据表中的最大数值。使用MAX函数可以轻松地找到数据表中的最大值,并且在进一步处理数据时非常有用。本文将介绍如何使用MAX函数来找到数据表中最大的数值,并给出相应的代码示例。一、MAX函数简介MAX函数是MySQL中的一个聚合函数,用

    如何利用thinkorm实现数据表之间的关联查询 如何利用thinkorm实现数据表之间的关联查询 Aug 01, 2023 am 08:25 AM

    如何利用thinkorm实现数据表之间的关联查询引言:在进行数据库开发中,经常会碰到需要在多个数据表之间进行关联查询的情况。利用thinkorm这一优秀的数据库ORM框架,可以轻松地实现数据表的关联查询,提高开发效率。本文将介绍如何利用thinkorm实现数据表之间的关联查询,并提供代码示例帮助读者更好地理解。一、基本概念在进行关联查询之前,首先需要了解th

    See all articles