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索引
      全文索引

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

  1. Mysql学习总结(4)——MySql基础知识、存储引擎与常用数据类型

    1.基础知识 1.1.数据库概述 简单地说:数据库(Database或DB)是存储.管理数据的容器: 严格地说:数据库是"按照某种数据结构对数据进行组织.存储和管理的容器". 总结 ...

  2. MySQL体系结构和存储引擎概述

     MySQL体系结构和存储引擎概述 一.定义数据库和实例 数据库: 物理操作系统文件或其他形式文件类型的集合.数据库文件可以是frm.MYD.ibd 结尾的文件. 从概念上来说,数据库是文件的集合,是 ...

  3. MySQL存储引擎概述

    一.MySQL支持插件式存储引擎,默认包括有多种存储引擎,还可以自己定制化引擎,引擎是在表级别设置的. 二.各种存储引擎的特性 (A) MyISAM :不支持事务.不支持外键.访问速度快. 每个MyI ...

  4. 《MySQL命令执行过程和存储引擎概述》阅读笔记

    使用MySQL的完整过程: 启动MySQL服务器程序. 启动MySQL客户端程序并连接到服务器程序. 在客户端程序中输入一些命令语句发送到服务器程序,服务器程序收到这些请求后,会根据请求的内容来操作具 ...

  5. MySQL内核:InnoDB存储引擎 卷1

    MySQL内核:InnoDB存储引擎卷1(MySQL领域Oracle ACE专家力作,众多MySQL Oracle ACE力捧,深入MySQL数据库内核源码分析,InnoDB内核开发与优化必备宝典) ...

  6. mysql不同版本和存储引擎选型的验证

    Mysql的版本和存储引擎较多,为了选择最适合业务使用的系统,需要进行一定的验证,本文描述mysql的验证过程和思路. 主要涉及: Mysql的版本 v Mariadb v Tokudb v Orac ...

  7. (转)Mysql技术内幕InnoDB存储引擎-表&索引算法和锁

    表 原文:http://yingminxing.com/mysql%E6%8A%80%E6%9C%AF%E5%86%85%E5%B9%95innodb%E5%AD%98%E5%82%A8%E5%BC% ...

  8. mysql————表类型(存储引擎)的选择

    表类型(存储引擎)的选择 7.1 mysql存储引擎概述 插件式存储引擎是mysql数据库最重要的特性之一,用户可以根据应用的需要选择ruhr存储和索引数据,是否使用事务等. InnoDB和BDB提供 ...

  9. MySQL技术内幕InnoDB存储引擎(表&索引算法和锁)

    表 4.1.innodb存储引擎表类型 innodb表类似oracle的IOT表(索引聚集表-indexorganized table),在innodb表中每张表都会有一个主键,如果在创建表时没有显示 ...

随机推荐

  1. 手把手教系列之IIR滤波器设计

    [导读]:在嵌入式系统中经常需要采集模拟信号,采集模拟信号的信号链中难免引入干扰,那么如何滤除干扰呢?今天就来个一步一步描述如何设计部署一个IIR滤波器到你的系统. 何为IIR滤波器? 无限冲激响应( ...

  2. 力扣题解-面试题10- II. 青蛙跳台阶问题

    题目描述 一只青蛙一次可以跳上1级台阶,也可以跳上2级台阶.求该青蛙跳上一个 n 级的台阶总共有多少种跳法. 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008, ...

  3. spark机器学习从0到1介绍入门之(一)

      一.什么是机器学习 机器学习(Machine Learning, ML)是一门多领域交叉学科,涉及概率论.统计学.逼近论.凸分析.算法复杂度理论等多门学科.专门研究计算机怎样模拟或实现人类的学习行 ...

  4. Redux:异步操作

    最近状态不太好,学习redux的异步操作花的时间比想象的多,这里尽量清晰简要的表述一下在redux中怎么实现异步操作. 先回顾一下同步操作: 我们用redux执行同步的时候,都是先发起一个dispat ...

  5. SpringBoot教程——检视阅读

    SpringBoot教程--检视阅读 参考 SpringBoot教程--一点--蓝本--springboot2.1.1 SpringBoot教程--易百--springboo2.0.5.RELEASE ...

  6. 201771010117马兴德 实验二 Java基本程序设计(1)

    实验二 Java基本程序设计(1)  第一部分    理论知识的学习. 第三章Java基本程序设计结构 1  基本知识: (1)标识符:标识符由字母.下划线.美元符号和数字组成,且第一个符号不能为数字 ...

  7. 【MySQL】详细说下MySQL删除数据的过程是什么样的?

    drop table 这里先介绍一下[InnoDB]存储表空间概念: Innodb存储引擎,可将所有的数据库数据存放于[ibdata1]的共享表空间:也可以将每张表存放于独立的.idb文件的独立表空间 ...

  8. 统计元音(hdu20)

    输入格式:输入一个整型,再循环输入带空格的字符串. 思考:先用scanf()函数输入一个整型,后面直接来个大循环,带空格字符串输入直接用gets()函数. 注意:由于scanf()里面多加了%c,&a ...

  9. 实验6、Python-OpenCV宽度测量

    一. 题目描述 测量所给图片的高度,即上下边缘间的距离. 思路: 将图片进行阈值操作得到二值化图片. 截取只包含上下边框的部分,以便于后续的轮廓提取 轮廓检测 得到结果 二. 实现过程 1.用于给图片 ...

  10. SPL数据结构

    数据结构是计算机存储.组织数据的方式. SPL提供了双向链表.堆栈.队列.堆.降序堆.升序堆.优先级队列.定长数组.对象容器. 基本概念Bottom:节点,第一个节点称Bottom:Top:最后添加的 ...