• Mysql存储引擎


    当别人问我Mysql的存储引擎的时候,我就知道Myisam和innodb

    虽然知道有其他的存储引擎,但是从来没有去了解过今天了解一下扩充知识

    查看Mysql的存储引擎

    show engines;

    MyISAM

    Mysql 5.5之前默认的存储引擎

    MyISAM存储引擎由MYD和MYI组成

     .frm存储表结构,任何存储引擎都有

    .myd 数据文件

    .myi索引文件

    非聚集索引

    MyISAM存储引擎的特性:

    并发性与锁级别-表级锁

    支持全文检索

    支持数据压缩

      myisampack -b -f testmyisam.myi

    数据压缩过后会产生.old文件,删除后可能会无法新增和删除,可以通过语句修复表

    适用场景:

    非事物型应用(数据仓库,报表,日志数据)

    只读类应用

    空间类应用(空间函数,坐标)

    INNODB

    MySql5.5以及以后版本默认的存储引擎

    innodb_file_per_table

      on:独立的表空间:tablename.ibd

      off:系统表空间:ibdatax

     .frm表结构

    .ibd数据+索引

    聚集索引

    mysql5.6以前默认为系统表空间

    系统表空间和独立表空间

    系统表空间无法简单的收缩文件大小

    独立表空间可以通过optimize table 收缩系统文件

    系统表空间会产生IO瓶颈

    独立表空间可以同时向多个文件刷新数据

    建议InNoDB使用独立表空间

    Innodb特性

    innodb是一种事物性存储引擎

    完全支持事物的ACID特性

    Redo log和Undo log

    InnoDb支持行级锁(并发程度更高)

    适用场景

    Innodb适用与大多数OLTP应用

    OLTP也就是联集事物,系统中涉及到事物的表就可以使用InnoDb

    接下来的了解一下就可以

    存储引擎CSV

    组成

     数据以文本方式存储在文件

     .csv文件存储内容

    .csm文件存储表的元数据如表状态和数据量

    .frm存储表结构

     特点:

    以CSV格式进行数据存储

    所有列都不能为Null

    不支持索引(不适合大表,不适合在线处理)

    可以对数据文件直接编辑(保存文本文件内容)

    创建时提示这个存储引擎不支持列为null,需要在字段后添加not null

     

     存储引擎Archive

    组成

      以zlib对表数据进行压缩,磁盘IO更少,数据存储在ARZ为后缀的文件中

    特点

      只支持insert和select操作

      只允许在自增ID列上加索引

     

     使用场景

    日志和数据采集应用

    存储引擎Memory

    文件系统存储特点

    也称HEAP存储引擎,所以数据保存在内存中

    支持HASH索引和BTree索引

    所有字段都是固定长度varchar(10)=char(10)

    不支持BLOB和Text等大字段

    Memory存储引擎使用表级锁

    最大大小由max_heap_table_size参数决定

     

     使用场景:

    hash索引用于查找或者是映射表(邮编和地区的映射表)

    用于保存数据分析中产生的中间表

    用于缓存周期性聚合数据的结果表

    memory数据容易丢失,所以要求数据可再生

    存储引擎Ferderated

    特点:

      提供了远程访问Mysql服务器上的表的方法

      本地不存储数据,数据全部放到远程服务器上

      本地需要保存表结构和远程服务器的链接信息

     使用场景:

      偶尔的统计分析及手工查询

    这个存储引擎默认是不开启的如果需要使用需要手动开启

    在配置文件My.ini中添加

     创建表,需要先有远程表

     是不是感觉知识扩充了一些,

    作者:彼岸舞

    时间:202075

    内容关于:Mysql

    本文来源于网络,只做技术分享,一概不负任何责任

  • 相关阅读:
    事件的截获
    页面嵌入dom与被嵌入iframe的攻防
    如何在windows下安装JDK
    Java and C# Comparison
    利用hadoop来解决“单表关联”的问题
    Oracle10GODP连接11G数据库,出现ORA
    sql 2005出现错误:数据库 'Twitter' 的事务日志已满。若要查明无法重用日志中的空间的原因,请参阅 sys.databases 中的 log_reuse_wait_desc 列。
    MapReduce 模式、算法和用例
    利用hadoop来解决“共同好友”的问题
    部署hadoop的开发环境
  • 原文地址:https://www.cnblogs.com/flower-dance/p/13251844.html
Copyright © 2020-2023  润新知