• 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的,这个具体情况可以自己斟酌  

     

     

        

  • 相关阅读:
    Spark API 之 map、mapPartitions、mapValues、flatMap、flatMapValues详解
    大三寒假生活9
    大三寒假生活8
    大三寒假生活7
    MySQL SQL DML (数据操作语言)
    MySQL JOIN
    Python 可执行对象
    Python __slots__
    Python tempfile (临时文件)
    Python 文件操作
  • 原文地址:https://www.cnblogs.com/yhqq512/p/10762895.html
Copyright © 2020-2023  润新知