zoukankan      html  css  js  c++  java
  • mysql 存储引擎学习

    现在我们常用的MySQL存储引擎主要是两种:InnoDB and MyISAM。

    1.MyISAM 

      执行效率高

       不支持事务

       不支持外键

       每个MyISAM在磁盘上存储成3个文件,其中文件名和表名都相同,但是扩展名分别为:

    • .frm(存储表定义)
    • MYD(MYData,存储数据)
    • MYI(MYIndex,存储索引)

    2.InnoDB(当前mysql的默认 存储引擎)

       支持事务:提供具有提交、回滚和崩溃恢复能力的事务安全。

       支持外键约束。

       支持行级锁。

       对比MyISAM存储引擎,InnoDB的写处理效率差一些以及会占用更多的磁盘空间来保留数据和索引。

      在以下场合下,使用InnoDB是最理想的选择:

      更新密集的表。InnoDB存储引擎特别适合处理多重并发的更新请求。
      事务。InnoDB存储引擎是支持事务的标准MySQL存储引擎。
      自动灾难恢复。与其它存储引擎不同,InnoDB表能够自动从灾难中恢复。
      外键约束。MySQL支持外键的存储引擎只有InnoDB。
      支持自动增加列AUTO_INCREMENT属性。

    3.MEMORY

      采用的逻辑存储介质是系统内存。

      最大的特点就是速度快。但是也因为在内存中,当mysqld守护进程崩溃时,所有Memory数据都会丢失。

      Memory要求存储在数据表里的数据使用的是长度不变的格式,这意味着不能使用BLOB和TEXT这样的长度可变的数据类型,VARCHAR是一种长度可变的类型,但因为它在MySQL内部当做长度固定不变的CHAR类型,所以可以使用。

    还有一些其他类型的存储引擎。因本人实际开发中,未曾接触,暂不总结。

  • 相关阅读:
    [MySQL] InnoDB三大特性之 插入缓冲
    字节对齐《c和指针》笔记包含位域结构体的内存对齐(32bit,GCC)
    反编译想到的代码安全问题
    剪切\编辑歌曲软件
    照片行【生活随笔】井冈山之行
    埃里克食品浅谈垃圾食品
    C++ 堆排序实现
    SQLite数据库
    全光网络的前世今生
    hdu1201(从出生长18岁经过多少天)
  • 原文地址:https://www.cnblogs.com/lingshao/p/5580257.html
Copyright © 2011-2022 走看看