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. 利用python在微信群中签到、抢沙发(适用于任何账号)

    利用python在微信群中签到.抢沙发 注意 程序仅能在电脑上运行,运行时需要保证群界面在最前端且不被移动. 背景 我是一名高中生(2020年),疫情期间,在家上网课,有的老师让我们在班群里签到. 其 ...

  2. Anaconda3中的Jupyter notebook添加目录插件

    学习python和人工智能的相关课程时安装了Anaconda3,想在Jupyter notebook中归纳整理笔记,为了方便日后查找想安装目录(Table of Contents, TOC)插件,查找 ...

  3. 浅谈JQuery

    一.什么是JQuery? JQuery是第三方开发的执行DOM操作的极简化的函数库. 执行DOM操作:JQuery还是在执行DOM操作 1.学习JQuery还是在学习DOM 2.五件事:增删改查 事件 ...

  4. 运行web容器实例

  5. poj3621 SPFA判断正环+二分答案

    Farmer John has decided to reward his cows for their hard work by taking them on a tour of the big c ...

  6. C语言基础知识(三)——指针

    指针定义 1.指针的值表示的是它所指向对象的地址,指针+1表示的是下一元素的地址,按**字节**编址,而不是下一字节的地址. 2.依照数据类型而定,short占用两字节.int占用4字节.double ...

  7. Algorithms - Data Structure - Perfect Hashing - 完全散列

    相关概念 散列表 hashtable 是一种实现字典操作的有效数据结构. 在散列表中,不是直接把关键字作为数组的下标,而是根据关键字计算出相应的下标. 散列函数 hashfunction'h' 除法散 ...

  8. (一) Vue在创建的时候 入口文件 及相关的路由配置(及子路由配置)

    1. 首先明确一点  在书写之前尽量保持相关的文件知道含义 比如 components 啥的 知道是要放什么东西 在这里介绍一下   由于 vue 不是系统学习 所以很多的创建方式可能不一样  就是有 ...

  9. UIAutomator2安装及连接

    记录一下自己的偿试过程,内容来自:https://github.com/openatx/uiautomator2 d.service("uiautomator").stop()是因 ...

  10. 【转】动态规划:最长递增子序列Longest Increasing Subsequence

    转自:https://www.cnblogs.com/coffy/p/5878915.html 设f(i)表示L中以ai为末元素的最长递增子序列的长度.则有如下的递推方程: 这个递推方程的意思是,在求 ...