MySQL系列:存储引擎简介

1、存储引擎mysql

 1.Mariadb存储引擎sql

       存储引擎就是指表的类型决定了表在计算机中的存储方式,在MySQl是一个插入式的存储引擎概念。决定了MySQl数据库中的表可使用不一样的存储方式存储。数据库

 2.mysql支持的存储引擎(Mariadb-servver5.5.44)缓存

        MariaDB[(none)]> SHOW ENGINES;安全

wKiom1ckEsfSObJaAAHcJRZhs-A362.png

    说明:服务器

         MariaDB 中相似Innodb的存储引擎实际上为XtraDB (percona社区提供)  InnoDB的加强改进,但仍然叫作InnoDB并发

 

 

 

2、Innodb存储引擎ide

 1.Innodb特性概述函数

    (1) 处理大量的短时间()事务;具备自动崩溃恢复特性高并发

    (2) 数据存储于"表空间(tablespace)"中;自行管理的黑盒;其内部组织为多个文件,表现为一个文件

    (3) 可直接存储于裸设备中,而无需文件系统支持

    (4)基于MVCC来支持高并发,支持全部的四个隔离级别,默认级别为REPEATABLEREAD(可重读功能); 间隙锁防止幻读;

    (5)Innodb使用汇集索引;也支持"自适应hash索引"(没法显示建立,InnoDB内部自行维护)

    (6)锁粒度:行级锁(一部份内容)

 

 2.innodb表空间存储方式

     (1) 全部InnoDB表的数据和索引放置于同一个表空间中;表空间文件存储于datadir定义的目录下

      数据文件(存储数据和索引)ibddata1, ibddata2, ...存满了自动扩张,可限制单个表的物理空间大小

    (2) 每一个表单独使用一个表空间存储表的数据和索引;才能实现各类高级功能

参数:innodb_file_per_table=ON

数据文件(存储数据和索引):tbl_name.ibd,

表格式定义(每一个表多少字段,每一个字段的名称等信息):tbl_name.frm

注意:

    此方式存储数据当清空表数据,而不会清空表格式;由于数据和文件使用不一样的文件分开存储

 

 

 

3、MyISAM存储引擎

 1.MyISAM概述

   (1)特性

      最先的存储引擎,也最成熟。早些服务于数据仓库(较少的插入操做可是较多的读操做的场景),不适用于在线事务处理的应用场景。

支持全文索引(FULLTEXTindex)

支持直接对表数据压缩

 支持空间函数(GIS)

不支持事务,且为表级锁(锁粒度粗糙)

崩溃后没法安全恢复,能够手动check恢复,但时间长

      注意

          MariadbMyISAM作了加强,为Aria存储引擎;其支持崩溃后安全恢复

   (2)适用场景

            只读(或者写较少)、表较小(能够接受长时间进行修复操做)

 

  2.数据文件存储

每一个表有三个文件进行数据的存储

表格式定义文件

tbl_name.frm

数据文件

tbl_name.MYD

索引文件

tbl_name.MYI

          行格式:

                dynamic变长字段动态行, fixed固定长度的行长短, compressed  压缩后存放, compact紧致的, redundent冗余方式

 

 

 

4、MySQL支持的其它存储引擎

  1.CSV:将普通的CSV(字段经过逗号分隔)做为MySQL表使用;

  2.MRG_MYISAM:将多个MyISAM表合并成为一个虚拟表;

  3.BLACKHOLE:相似于/dev/null,不真正存储任何数据;

  4.MEMORY:全部数据都保存于内存中,内存表;支持hash索引;表级锁;通常用于对临时表采起的操做

  5.PERFORMANCE_SCHEMA:伪存储引擎;mysql关闭会消失不见

  6.ARCHIVE:只支持SELECT和INSERT操做;支持行级锁和专用缓存区;不支持事务;可用于数据仓库,作不可能发生改变,归档保存的再也不作修改的历史数据

  7.FEDERATED:用于访问其它远程MySQL服务器一个代理,它经过建立一个到远程MySQL服务器的客户端链接,并将查询传输到远程服务器执行,然后完成数据存取;在MariaDB的上实现是FederatedX

  8.其余

OQGraphSphinxSETokuDBCassandraCONNECTSQUENCE

相关文章
相关标签/搜索