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. 小程序externalClasses介绍

    小程序externalClasses 1.介绍:我们在封装组件的时候,有时候需要对外暴露出class,可以由调用者来决定组件中一部分的样式,此时就需要使用它了 // components/dong/i ...

  2. SpringBoot + react app 项目,解决跨域问题的配置(跳坑含泪总结,亲测有效)

    方法一: 对某一接口配置,可以在方法上添加 @CrossOrigin 注解 @CrossOrigin(origins = {"http://localhost:8110", &qu ...

  3. 复习webpack的常用loader

    今天复习了下webpack的常用loaders,其实习惯ES6开发的话,webpack的config.js基础配置应该是比较固定: 首先是JS,我们ES6要转为ES5,需要用到babel转码: 1. ...

  4. Js运算符和逻辑结构

    1.运算符 (1)赋值运算符 =  +=  -=  *=  /=  %= (2)三目运算符 一目  一个运算符连接一个数据   --  ++  ! 二目  一个运算符连接两个数据   + - * / ...

  5. python操作MySQL之pymysql模块

    import pymysql#pip install pymysql db=pymysql.connect(','day040') cursor=db.cursor() #创建游标 book_list ...

  6. xampp apache 安全性问题

    要禁止 Apache 显示目录结构列表,只需将 Option 中的 Indexes 去掉即可.<Directory "D:/Apa/blabla"> Options I ...

  7. Error creating bean with name 'org.springframework.aop.aspectj.AspectJPointc

    问题 出现报错: Error creating bean with name 'org.springframework.aop.aspectj.AspectJPointc 原因 缺失两个库文件: as ...

  8. 汉字统计(hdu2030)

    输入格式:一个整型,再循环带有空格的字符串 思考:用scanf_s()函数输入整型,然后一个大循环,再用gets_s()函数输入带空格的字符串. 注意:scanf_s()函数多加了%c,&d, ...

  9. HTML5移动端最新兼容问题解决方案

    1.安卓浏览器看背景图片,有些设备会模糊.用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢?经过研究,是devicePixelRatio作怪,因为手机分辨率太小,如果按照分辨率来显示网 ...

  10. 【百度网盘活动】扩容2T+7天会员

    https://pan.baidu.com/component/view?id=455 https://pan.baidu.com/union/smartProgramShare?scheme=bdn ...