美文网首页
mysql中常见的引擎介绍及使用

mysql中常见的引擎介绍及使用

作者: 叫我胖虎大人 | 来源:发表于2019-06-29 22:17 被阅读0次


    MySQL常用的存储引擎之MyISAM

    myisam是大多数系统表和临时表使用的存储引擎

    这里的临时表不是平常所说的那个临时表

    MyIsam存储引擎表由MYD和MYI组成

        MYD指的是数据文件,MYI指的是索引文件,这个表下还会生成一个表结构文件

    MyISAM存储引擎的特性

        并发和锁级别

            MyISAM支持的是表级锁,并发性并不是特别好

        表损坏修复

            MYISAM并不支持事务,所以对日志的读取和恢复效果不是特别好

            可以通过 check table tablename和repair table tablename来进行回复

        MyISAM表支持的索引类型

        MyISAM表支持数据压缩

            命令行myisampack命令

            对于已经压缩的表只能进行读操作

    MyISAM存储引擎的限制

            在mysql5.0是默认表大小为4G,如果要存储大表则要修改MAX_Rows和AVG_ROW_LENGTH,在>MySQL>5.0的版本时默认支持为256TB

    MyISAM存储引擎适用的场景

        非事务性应用

        对于只读类应用很不错

        空间类应用(如GPS)


    MySQL常用的存储引擎之Innodb

    MySQL5.0及之后版本的默认存储引擎

    Innodb使用表空间进行数据存储

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

            系统表空间会产生IO瓶颈

            独立表空间可以收缩文件大小

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

    建议:对Innodb使用独立表空间

    表的转移步骤


    Mysql常用存储引擎之CSV

    文件系统的存储特点

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

            .csv文件存储表内容

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

            .frm文件存储表结构信息 (所有的引擎下的表都有这个文件)

    特点

            以CSV格式进行数据存储

            所有列必须都是不能为null的(简单理解就是创建表的时候列属性 的默认值需要为not null)

            不支持索引

                    不适合大表,不适合在线处理

            对数据文件直接编辑(类似MyIsam和Innodb使用的都是二进制文件对数据进行保存的)

            CSV是以文本文件内容进行保存的

    使用场景


    Mysql常用引擎值Archive

    文件系统的存储特点

            以zlib对表数据进行压缩,磁盘I/O更少

            数据存储在ARZ为后缀的文件中

    功能特点

            支持行级锁和缓冲区(所以可以实现高并发的插入)本身并不是一种是事务性的存储引擎

            只支持insert和select操作

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

    使用场景 

            日志和数据采集类应用



     Mysql常用引擎值Memory   

    文件系统的存储特点

            也称为HEAP存储引擎,数据存储在内存当中(在宕机的情况下数据会丢失,但是表的结构会保留下来,表的结构是保留在磁盘当中的)

    功能特点

            支持HASH索引(默认,无法做范围索引)和BTree索引

            等值查找 HASH  范围查找BTree

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

            不支持BLOG和TEXT等大字段

            Menory存储引擎使用表级锁

            最大大小由max_heap_table_size参数决定

            对已经存在的表修改这个参数是无效的,如果需要对已经存在的表修改这个参数的话需要对表进行重建

    容易混淆的概念

            Memory存储引擎表和临时表(岁所有的线程都是有效的)

            临时表(只对当前的session有效)

                    1.系统临时使用的表

                                限制以内使用Memory表

                                超过限制使用MyIsam表

                2.create temporary table建立的临时表

    使用场景  (Memory数据已丢失,所以要求数据可再生)

            用于查找或是映射表,例如右边 和地区的对应表

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

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


    Mysql常用引擎值Federated(默认是禁止的)

    如何使用

    默认禁止,启用需要在启动时增加federated参数

    功能特点

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

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

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

    使用场景 

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

            如何选择正确的存储引擎

            参照条件

            事务

            备份

            崩溃恢复

            存储引擎的特有特性


    简单点说基本上都是使用Innodb

    此外,不到万不得已,不要混合使用存储引擎

    相关文章

      网友评论

          本文标题:mysql中常见的引擎介绍及使用

          本文链接:https://www.haomeiwen.com/subject/sidbnqtx.html