zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    Permission denied (publickey). fatal: Could not read from remote repository.
    jQuery OCUpload一键上传文件
    org.apache.subversion.javahl.ClientException: Working copy is not up-to-date
    测开之路一百三十五:实现登录身份验证功能
    测开之路一百三十四:实现指定查找功能
    测开之路一百三十三:实现sql函数封装
    测开之路一百三十二:实现修改功能
    测开之路一百三十一:实现删除功能
    测开之路一百三十:实现前端到数据库交互(增和查)
    测开之路一百二十九:jinja2模板语法
  • 原文地址:https://www.cnblogs.com/flower-dance/p/13251844.html
Copyright © 2011-2022 走看看