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类型,所以可以使用。

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

  • 相关阅读:
    微信小程序——gulp处理文件
    小程序开发经验总结
    微信小程序入门之构建一个简单TODOS应用
    3元体验腾讯云小程序后端解决方案
    C++笔记:面向对象编程(Handle类)
    你真的知道你看到的UTF-8字符是什么吗?
    Unity3D游戏开发之在Unity3D中视频播放功能的实现
    vb.net机房收费系统——存储过程
    Oracle基础学习4--Oracle权限传递
    我与京东的那些事儿
  • 原文地址:https://www.cnblogs.com/lingshao/p/5580257.html
Copyright © 2011-2022 走看看