• MyISAM与InnoDB的区别


    1. 存储结构:

      MyISAM:(文件名以表名开始)

        .frm文件存储表定义

        .MYD文件存储数据

        .MYI文件存储索引

      InnoDB:

        所有的表保存在同一个(也可能多个)数据文件中,表的大小仅受限于操作系统文件的大小,一般为2GB

    2. 存储空间:

      MyISAM:

        可被压缩,存储空间较小。支持三种不同的存储格式:静态表、动态表、压缩表

        默认为静态表,数据末尾不能有空格,否则会将空格去掉

      InnoDB:

        更多的内存和存储空间。在内存中建立专用的缓冲池用于高速缓冲数据与索引

    3. 可移植性、备份与恢复:

      MyISAM:以文件形式存储,转移方便。可单独针对某个表进行备份与恢复。

      InnoDB:相对痛苦

    4. 事务支持:

      MyISAM:不支持事务

      InnoDB:支持事务ACID

    5. Auto-Increment:

      MyISAM:自增长列必须为索引

      InnoDB:同样,但要求若是组合索引,自增长列必须为第一列

    6. 表锁:

      MyISAM:表级锁

      InnoDB:行级锁,大大提高并行性

    7. 全文索引:

      MyISAM:支持FULLTEXT

      InnoDB:本身不支持FULLTEXT,用sphinx插件后支持效果更好

    8. 表主键:

      MyISAM:允许没有任何索引和Key的表存在

      InnoDB:不允许。若没有索引则自动生成一个6字节的索引(按照本人的理解是:行级锁加载索引上)

    9. 表的具体行数:

      MyISAM:保存总行数,select count(*) from <table>;会取出该值

      InnoDB:不保存总行数,select count(*) from <table>;会遍历表,高能耗

      若加了where语句之后,二者相同

    10. CURD:

      MyISAM:select语句的最好选择

      InnoDB:insert与update性能好,delete语句在InnoDB上效果更优,但是delete from <table>;语句InnoDB会进行逐行删除,最好改用truncate <table>

    11. 外键FK:

      MyISAM:不支持

      InnoDB:支持

  • 相关阅读:
    XML 增、删、改和查示例
    DataGrid 完全攻略之三(实现删除全选或者全不选)
    DataGrid 完全攻略之七(实现选择、编辑和修改)
    ASP.NET 2.0,无刷新页面新境界
    DataGrid 完全攻略之二(把数据导出到Excel)
    ASP.NET 2.0角色及成员管理
    动态改变页面的CSS样式
    ASP.NET 2.0新控件、管理外观、布局及其它用户体验
    页面一postback,它就显示页面的最顶端,怎样让它定位在某一位置?
    20100120 ~ 20100220 小结与本月计划
  • 原文地址:https://www.cnblogs.com/joshua-aw/p/6017650.html
Copyright © 2020-2023  润新知