• MySQL存储引擎


    一、查看MySQL支持的存储引擎

    show engines;

    二、MyISAM和InnoDB存储引擎对比

      存储方式 存储空间 可移植性 事物支持 其他
    MyISAM

    三个文件存储

    .frm(存储表定义)

    MYD(MYData,存储数据)

    MYI(MYIndex,存储索引)

    可被压缩,存储空间较小。

    支持三种不同的存储格式:

    • 静态表(默认,但是注意数据末尾不能有空格,会被去掉)、
    • 动态表、
    • 压缩表

    数据以文件形式存储,跨平台性强

    不支持事物

    1. 只支持表级锁
    2. 支持全文索引
    3. 允许没有主键和索引
    4. 保存了表的总行数(select count(*) 则会直接取出)
    5. 适合做查询使用(select)
    6. 不支持外键
    InnoDB

    存储在两个文件中 

    一个是定义文件

    一个是数据文件

    需要更多的内存和存储,

    它会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引

    免费的方案可以是拷贝数据文件、备份 binlog,

    或者用 mysqldump,数据量打的时候不好处理

    支持事物

    1. 支持事物和行级锁 
    2. 不支持全文索引
    3. 如果没有主键和索引,系统会默认添加用户不可见
    4. 没有保存行数,通过遍历获取行数
    5. 适合插入和更新使用(insert update )
    6. 支持外键
    总结

    通过上述的分析,基本上可以考虑使用InnoDB来替代MyISAM引擎了,原因是InnoDB自身很多良好的特点,

    比如事务支持、存储 过程、视图、行级锁定等等,在并发很多的情况下,相信InnoDB的表现肯定要比MyISAM强很多。

    另外,任何一种表都不是万能的,只用恰当的针对业务类型来选择合适的表类型,才能最大的发挥MySQL的性能优势。

    如果不是很复杂的Web应用,非关键应用,还是可以继续考虑MyISAM的,这个具体情况可以自己斟酌  

     

     

        

  • 相关阅读:
    EF 事务
    关于C#如何将Word转换成PDF的方法汇总
    莫德纳公司
    C# 填充pdf 模板生成报告
    自定义滚动条的样式
    Docker 大势已去,Podman 即将崛起……
    一款基于 Spring Boot 开发的 OA 项目,已开源,真香..
    当你运行npm run命令时,会发生什么?
    Java遇上SPL:架构优势和开发效率,一个不放过
    如何使用Python实现图像融合及加法运算?
  • 原文地址:https://www.cnblogs.com/yhqq512/p/10762895.html
Copyright © 2020-2023  润新知