mysql基础之-mysql存储引擎概述(八)

0x01

mysql 存储引擎:存储引擎也通常被称作“表类型”

mysql> show engines;   --- 查看当前所有所支持的存储引擎
mysql> show table status

存储引擎格式:
SHOW TABLE STATUS [{FROM | IN} db_name]
[LIKE ‘pattern‘ | WHERE expr]

mysql> show table status in hellodb where Name=‘class‘\G

Name 表名
Engine 存储引擎
Version:版本
Row_format:行格式
{DEFAULT|DYNAMIC|FIXED|COMMPRESSED|REDUNDANT|COMPACT}

Rows:表中的行数
Avg_row_length:平均每行包含的字节数
Data_length:表中数据总体大小,单位为字节
Max_data_length:表能够占用的最大空间,单位为字节,0表示么有上限
Index_length:索引的大小,单位为字节
Data_free:对于MyISAM表,表示已经分配但尚未使用的空间,其中包含此前删除行之后腾出来的空间

Auto_increment:下一个AUTO_INCREMENT的值
Create_time:表的创建时间
Update_time: 表数据的最后一次修改时间
Check_time: 使用CHECK TABLE或myisamchk最近一次检查表的时间
Collation:排序规则
Checksum:如果启动,则为表的checksum
Create_options:创建表时指定使用的其他选项
Comment:表的注释信息

InnoDB
两种格式:
  1.innodb_file_per_table=OFF,即是用共享表空间
    每个表一个独有的格式定义文件:tb_name.frm
    还有一个默认位于数据目录下的共享的表空间文件:ibdata#
  2.innodb_file_per_table=ON,即是用独立表空间
    每个表在数据库目录下存储两个文件
      tb_name.frm
      tb_name.ibd

MyISAM:
   每个表都在数据库目录下存储三个文件
    tb_name.frm
    tb_name.MYD
    tb_name.MYI

表空间: table space ,由InnoDB管理的特有格式数据文件,内部可同时存储数据和索引

    如何修改默认存储引擎:通过default_storage_engine服务变量实现

    各存储引擎的特性:
      InnoDB:
        支持事务,有事务日志
        ib_logfile0
        ib_logfile1
        支持外键约束
        支持MVCC(多版本并发控制)
        支持聚簇索引
        聚簇索引之外的其他索引,通常称之为辅助索引
        行级锁:间隙锁
        支持使用辅助索引
        支持自使用hash索引
        支持热备份

      MyISAM:
        全文索引
        支持表压缩存放:做数据仓库,能节约存储空间并提升性能
        支持空间索引
        表级锁
        延迟更新索引

        不支持事务、外键和行级锁
        崩溃后无法安全恢复数据

  使用场景:只读数据,表较小,能够忍受崩溃后的修复操作和数据丢失

mysql数据库其他存储引擎

  ARCHIVE
    仅支持INSERT和SELECT,支持很好压缩功能
    应用于存储日志信息,或其他按照时间序列实现的数据采集类的应用
  CSV:
    将数据存储为CSV格式,不支持索引,仅使用与数据交换场景
  BLACKHOLE:
    没有存储机制,任何发往次引擎的数据都会丢弃,其会记录二进制日志,因此,常用于多级复制架构中作中转服务器
  MEMORY:
    保存数据在内存中,内存表;常用于保存中间数据,如周期性的聚合数据等,也用于实现临时表
    支持hash索引,使用表级锁,不支持BLOB和TEXT数据类型
  MRG_MYISAM:
    是MYISAM的一个变种,能够将多个MyISAM表合并成一个虚表
  NDB:
    是MySQL CLUSTER中专用的存储引擎、

  第三方的存储引擎
  OLPT
  XtraDB:增强的InnoDB,有Percona提供,编译安装时,下载XtraDB的源码替代MySQL存储引擎中的InnoDB的源码

  PBXT:MariaDB自带此存储引擎
  支持引擎级别的复制、外键约束,对SSD磁盘提供适当支持
  支持事务、MVCC

  TokuDB:使用 Fractal Trees索引,适用存储大数据,拥有很好的压缩比,已经被引入MariaDB

  列式数据存储引擎:
    Infobright:目前较有名的列式引擎,适用于海量数据存储场景,如PB级别,专为数据分析和数据仓库设计
      InfiniDB
      MonetDB
      LucidDB

  开源社区存储引擎:
    Aria:前身为Maria,是增强版的MyISAM(支持崩溃后安全恢复,支持数据缓存)
    Groona:全文索引引擎
    Mroonga:是基于Groona的二次开发版
    OQGraph:由open query研发,支持图(网状 )结构的存储引擎
    SphinxSE:为Sphinx全文搜索服务器提供了SQL接口
    Spider:能将数据切分成不同的分片,比较高效透明的实现了分片(shared),并支持在分片上支持并行查询

    根据具体需要如何选择选择mysql存储引擎
        是否需要事务
        备份的类型的支持
        崩溃后的恢复
        特有的特性

    索引类型:
      聚簇索引
      辅助索引

      B树索引
      R树索引
      hash索引
      全文索引

时间: 2024-10-03 22:49:30

mysql基础之-mysql存储引擎概述(八)的相关文章

MySQL学习笔记(1) - 存储引擎概述

和大多数数据库不同,在MySQL中存在一个存储引擎的概念,针对不同的存储需求可以选择最优的存储引擎. 一.MySQL存储引擎概述 插件式存储引擎是MySQL数据库最重要的特征之一,用户可以根据应用的需要寻找如何存储和索引数据.是否使用事务等.MySQL默认支持多种存储引擎,以适用于不同领域的数据库应用需求,用户可以通过选择选择不同的存储引擎提供应用的效率,提供灵活的存储,用户甚至可以按照自己的需要定制和使用自己的存储引擎,以实现最大程度的可定制性. MySQL支持的存储引擎包括MyISAM.In

MySql基础知识、存储引擎与常用数据类型

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 本文将主要讲解了数据库的一些基础知识,介绍了MySql的存储引擎,最后讲了MySql常用的数据类型 1.基础知识 1.1.数据库概述 简单地说:数据库(Database或DB)是存储.管理数据的容器: 严格地说:数据库是"按照某种数据结构对数据进行组织.存储和管理的容器". 总结:数据永远是数据库的核心. 1.2.关系数据库管理系统 通过"数据库管理系统",数据

MySQL存储引擎概述

一.MySQL支持插件式存储引擎,默认包括有多种存储引擎,还可以自己定制化引擎,引擎是在表级别设置的. 二.各种存储引擎的特性 (A) MyISAM :不支持事务.不支持外键.访问速度快. 每个MyISAM表在磁盘上存储成3个文件,文件名与表名相同,扩展名是: (A1) frm (存储表定义) (A2) MYD (MYData, 存储数据) (A3) MYI (MYIndex, 存储索引) 数据文件和索引文件可以放置在不同的目录,平均分布IO,获得更快的速度.可以在创建表的时候,指定该表的 DA

MySQL内核:InnoDB存储引擎 卷1

MySQL内核:InnoDB存储引擎卷1(MySQL领域Oracle ACE专家力作,众多MySQL Oracle ACE力捧,深入MySQL数据库内核源码分析,InnoDB内核开发与优化必备宝典) 姜承尧 蒋鸿翔 饶珑辉 温正湖 著   ISBN 978-7-121-22908-4 2014年5月出版 定价:69.00元 360页 16开 编辑推荐 预售前100位读者送MySQL 5.6 InnoDB存储引擎的架构图 l  <高性能MySQL>配套深度阅读数据库内核解析篇 l  网易资深数据

[转帖]一文看懂mysql数据库本质及存储引擎innodb+myisam

一文看懂mysql数据库本质及存储引擎innodb+myisam https://www.toutiao.com/i6740201316745740807/ 原创 波波说运维 2019-09-29 00:01:00 概述 今天主要讲下mysql数据库引擎的一些概念和mysql数据库本质,一句话总结: 文件夹-文件:一个数据库其实就是一个的文件夹,数据库里面的表就是文件夹里的一个或者多个文件(根据数据库引擎不同而不同,MyISAM是3个,InnoDB是2.5个) mysql的数据库其实就是存放在M

MySQL技术内幕-InnoDB存储引擎-读书笔记(二)

MySQL技术内幕-InnoDB存储引擎-读书笔记(二) 作为php开发,使用mysql总是少不了的 系列文章博客链接 http://itsong.net/articles/466.html 第三章 文件 mysql与innodb几个类型的文件 参数文件,配置路径.初始化参数.内存大小等 日志文件,包括错误日志,二进制日志,慢查询日志,查询日志 socket文件,用unix域套接字,unix domain socket来进行连接时需要的文件,这一般是本机连接,比通常tcp快 pid文件,进程id

《mysql技术内幕 InnoDB存储引擎(第二版)》阅读笔记

一.mysql架构 mysql是一个单进程多线程架构的数据库. 二.存储引擎 InnoDB: 支持事务 行锁 读操作无锁 4种隔离级别,默认为repeatable 自适应hash索引 每张表的存储都是按主键的顺序记性存放 支持全文索引(InnoDB1.2.x - mysql5.6) 支持MVCC(多版本并发控制)实现高并发 MyISAM: 不支持事务 表锁 支持全文索引 三.InnoDB体系架构 1.后台线程 Master Thread 负责将缓冲池中的数据异步刷新到磁盘,保证数据的一致性 IO

MySQL技术内幕-InnoDB存储引擎-读书笔记(一)

MySQL技术内幕-InnoDB存储引擎-读书笔记(一) 作为php开发,使用mysql总是少不了的 博客链接 http://itsong.net/articles/466.html 第一章 MySQL体系结构和存储引擎 MySQL被设计为一个单进程多线程架构的数据库 ./mysql --help | grep my.cnf 可以查看mysql数据库实例启动时,它会在哪些位置查找配置文件. 配置文件中有一个datadir参数,指定了数据库所在的路径.默认为/usr/local/mysql/dat

MYSQL 浅谈MyISAM 存储引擎

思维导图 介绍 mysql中用的最多存储引擎就是innodb和myisam.做为Mysql的默认存储引擎,myisam值得我们学习一下,以下是我对<高性能MYSQL>书中提到的myisam的理解,请大家多多指教. 特点 > 不支持事务 证明如下: >> 表记录:t2表的engine是myisam. >> 操作 注意:如果你在数据库进行事务操作,但是事务无法成功,你就要看你的表引擎了,看这种引擎是否支持事务. >> 下面请看innodb中的事务操作 &g