源无极

导航

 

   

         数据库的存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使用数据库引擎进行创建、查询、修改、删除数据的操作,

不同的存储引擎有不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎获得特定的功能

      mysql含有多种存储引擎,可以针对具体的要求对每一个表使用不同的存储引擎

     使用show engines 查看系统支持的存储引擎

    

 

 

   InnoDB

   1)是事务型数据库的首选引擎,支持事务安全表(ACID)支持行锁定和外键,这个是mysql的默认存储引擎

   2)给mysql提供了具有提交、回滚和崩溃恢复能力的事务安全存储引擎

  3)是为处理巨大数据量时的最大性能设计,它CPU效率可能是任何其他基于磁盘的关系数据库引擎所不能匹敌的。

 

 4)InnoDB存储引擎为在主内存中缓存数据和索引而维护它自己的缓冲池。将它的表和索引在一个逻辑表空间中,表空间可以包含数个文件(或原始磁盘文件);

 5)支持外键完整性约束,存储表中的数据时,每张表的存储都按照主键顺序存放,如果没有显示在表定义时指定主键,

InnoDB会为每一行生成一个6字节的ROWID,并以此作为主键

 6)InnoDB不创建目录,使用InnoDB时,MySQL将在MySQL数据目录下创建一个名为ibdata1的10MB大小的自动扩展数据文件,

以及两个名为ib_logfile0和ib_logfile1的5MB大小的日志文件

 

   MyISAM

  1) 基于ISAM存储引擎,并对其进行扩展。它web、数据仓储和其他应用环境下最常用的存储引擎之一。

   2)拥有较高的插入、查询速率,但是不支持事务

   3)每一个MyISAM表的最大索引数为64,这个可以通过重新编译来改变,每一个索引最大列数16

   4)在支持大文件系统和操作系统上被支持

   5)null值被允许在索引的列中

6)当插入、删除、更新混合操作的时候动态尺寸的行碎片更少。

 

存储引擎的选择

    不同的存储引擎有不同的特点,适用不同的需求,为了正确的选择,用户首先要了解存储引擎有哪些不同


   

 

 1)InnoDB和MyISAM的选择结合上面的解析

 2)Memory(内存) 是临时存放数据,数据量不大,并且不需要较高的数据安全性。

 3)Archive 引擎支持高并发的插入操作,但是本身不是事务安全,非常适合存储归档数据,记录日志信息适合用这个

   

面试:如何更改默认存储引擎

    修改默认的存储引擎:配置文件my.ini,打开这个文件,将default-storage-engine 后面的InnoDB修改为MyISAM

   补充

 

 

posted on 2019-09-28 09:34  源无极  阅读(94)  评论(0编辑  收藏  举报