浅谈MySQL的存储引擎

来源:互联网 发布:淘宝联盟如何省钱 编辑:程序博客网 时间:2024/06/07 07:26
 简介: 数据库存储引擎是数据库底层软件组件,DBMS使用数据引擎进行查询、创建、更新和
删除数据操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存
储引擎还可以获得特定的功能。

1、 通过SHOW ENGINES \G; 查看当前MySQL支持的存储引擎。如图:

浅谈MySQL的存储引擎 - John.Zhou - zhouyou.jun的博客
 
2. 常用存储引擎介绍
2.1   InnoDB存储引擎
        InnoDB是事务型数据库的首选,支持事务安全表(ACID),支持行级锁和外键。MySQL5.5.5之后
 InnoDB作为默认的存储引擎,InnoDB主要特性有:
              1)     InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事务安全(ACID)存储引擎。
              2)     InnoDB是为处理巨大数据量的最大性能设计。
              3)     InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索
                 引而维持它自己的缓冲池。InnoDB将它的表和索引在一个逻辑表空间中,表空间可以包含数个
                 文件(或者原始磁盘分区)。
              4)     InnoDB支持外键完整性约束(FOREIGN  KEY)。
              5)     InnoDB被用在众多需要高性能的大型数据库站点上。

2.2   MyISAM存储引擎
        MyISAM是在Web、数据仓储和其他应用环境最常用的存储引擎之一。MyISAM具有较高的插入、
查询速度,但不支持事务。在MySQL5.5.5之前的版本中,MyISAM是默认存储引擎。主要特性有:
              1)     BLOB 和 TEXT 列可以被索引。
              2)     NULL值被允许在索引列中。这个值占每个键的0~1个字节。
                       ..............
2.3   MEMORY存储引擎
        MEMORY 存储引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问。
              1)     MEMORY 不支持BLOB或者TEXT列。
                       ................
3      存储引擎的选择
        先来比较下各自的功能支持度。如下:
       

功能

MyISAM

MEMORY

InnoDB

存储限制

256TB

RAM

64TB

支持事务

不支持

不支持

支持

支持全文索引

支持

不支持

不支持

支持树索引

支持

支持

支持

支持哈希索引

不支持

支持

不支持

支持外键

不支持

不支持

支持


总结: 
    如果要提供提交,回滚和崩溃恢复能力的事务安全(ACID兼容)能力,并要求时限并发控制,
InnoDB是个很好的选择。

    如果数据表主要用来插入和查询,则MyISAM引擎能提供较高的处理效率。

    如果只是临时存放数据,数据量不大,并且并不需要较高的数据安全性,可以选择奖数据保存
在内存中的MEMORY引擎,MySQL中使用该引擎作为临时表,存放查询的中间结果。

结语:
   使用哪一种引擎要根据需要灵活选择,一个数据库中的多个表可以使用不同的引
擎以满足各种性能和实际需求。使用合适的存储引擎,将会提高整个数据库的性能。
0 0