美文网首页
mysql不同存储引擎各自特点以及使用场景

mysql不同存储引擎各自特点以及使用场景

作者: 放肆的呼喊 | 来源:发表于2019-11-14 16:50 被阅读0次

    myisam
    特性
    建表会生成frm MYD(特有) MYI(特有)三个文件
    并发性及锁级别
    表级锁并发性差
    表损坏修复:不支持事务
    可以使用check table tabklename和repair table tablename 来进行myisam表的检查和修复
    还有mysql的工具myisamchk –help 来进行修复
    MyISAM 支持数据压缩 myisampack *.MYI
    对于已经压缩的表只能进行读操作

    使用场景:
    1.非事务型应用
    2.只读类应用
    3.空间类应用

    innodb(mysql5.5及以后版本默认存储引擎):
    事务型存储引擎,支持ACID
    使用表空间进行数据存储
    使用 show variables like ‘innodb_file_per_table’;查看表空间类型
    on:独立表空间:tablename.ibd
    off:系统表空间:ibdataX
    修改这个参数使用set global innodb_file_per_table=on(off);来完成
    两者之间的比较:
    1.系统表空间无法简单的收缩文件大小,会造成较大的空间浪费(即删除无效数据之后不会改变文件的大小)
    独立表空间可以通过optimize table命令收缩系统文件,这种方法不会影响数据表的正常使用
    2.系统表空间会产生IO瓶颈
    独立表空间可以同时向多个文件刷新数据(频繁写入的表)
    建议:对innodb使用独立表空间

    表转移的步骤
    把原来存在与系统表空间中的表转移到独立表空间中的方法
    步骤:
    1.使用mysqldump导出所有数据库表数据
    2.停止MySQL服务,修改参数,并删除Innodb相关文件
    3.重启MySQL服务,重建Innodb系统表空间
    4.重新导入数据

    Innodb特性
    Innodb是一种事务型存储引擎
    完全支持事务的ACID特性
    即原子性、一致性、隔离性、持久性
    使用Redo Log和Undo Log来完成一致性
    show variables like ‘innodb_log_buffer_size’; 查看redo 缓冲区大小
    show variables like ‘innodb_log_file_in_group’; 查看log file数量

    innodb支持行级锁
    行级锁可以最大程度的支持并发
    行级锁是由存储引擎层实现的

    什么是锁
    锁对主要作用是管理共享资源的并发访问
    用于实现事务的隔离性
    锁的类型
    共享锁(读锁)
    独占锁(写锁)
    MySQL锁的粒度
    表级锁(开销小,并发性低),通常在服务器层实现
    行级锁(开销大,并发性高),只会在存储引擎层面进行实现
    阻塞和死锁

    innodb状态检查
    show engine innodb status

    适用场景:
    mysql5.7之后已经支持全文索引以及空间函数
    适用于大多数OLTP应用(On-Line Transaction Processing联机事务处理过程(OLTP)也称为面向交易的处理过程,其基本特征是前台接收的用户数据可以立即传送到计算中心进行处理,并在很短的时间内给出处理结果,是对用户操作快速响应的方式之一。)

    CSV存储引擎
    数据以文本方式存储在文件中
    .CSV文件存储表内容
    .CSM文件存储表的元数据如表状态和数据量
    .frm文件存储表结构信息(mysql服务器层所使用)
    特点
    以CSV格式进行数据存储
    所有列必须都是不能为NULL的
    不支持索引(不适合大表,不适合在线处理)
    可以对数据文件直接编辑,保存文本文件内容
    使用场景
    适合作为数据交换的中间表
    电子表格->CSV文件->MySQL数据目录
    数据->CSV文件->其他web程序

    Archive存储引擎
    以zlib对表数据进行压缩,磁盘I/O更少
    数据存储在ARZ为后缀的文件中
    特点:
    只支持insert和select操作
    只允许在自增ID列上加索引
    ————————————————
    版权声明:本文为CSDN博主「rammel」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
    原文链接:https://blog.csdn.net/rammus7/article/details/79392635

    相关文章

      网友评论

          本文标题:mysql不同存储引擎各自特点以及使用场景

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