Mysql数据库存储引擎

数据库引擎是数据库底层软件组织,数据库管理系统DBMS 使用数据引擎进行创建、查询、更新、删除数据。 不同的存储引擎提供不同的存储机制、索引技巧、锁表水平等功能,使用不同的存储引擎,还可以 获得特定的功能。 现在许多不同的数据库管理系统都支持多种不同的数据引擎
所谓的数据库引擎就是数据库的底层存储数据的方式

  1. Mysql数据库引擎:
    InnoDB、Mylsam、Memory、Mrg_Myisam
    、Blackhole等

  2. 查看数据的引擎
    在这里插入图片描述

  3. 如何修改数据库引擎
    修改my.ini文件 default-storage-engine=引擎名字

  4. InnoDB引擎(默认的)
    提供了对数据ACID事务的支持,并实现了SQL标准的四中钟隔离级别,具有行行级锁定,支持外键,该引擎的设计目标是出来大容量的数据系统,Mysql运行时会InooDB会在内存中建立缓冲池,用于数据及索引
    缺点:
    1) 该引擎不支持FULLTEXT类型的索引
    2)没有保存表的行数,在执行select count(*) from 表名 时,需要遍历扫描全表

    适用场景:
    1)经常需要更新的表,适合处理多重并发的更新请求
    2)支持事务
    3)外键约束
    4)可以从灾难中恢复(通过bin-log日志等)
    5)支持自动增加列属性auto_increment

  5. Mylsam引擎
    Mysql主流引擎之一,但他相比InnoDb没有对数据库事务的支持,不支持行级锁以及外键,当表insert和update时锁住整个表,因此效率低一些,高并发时会遇到瓶颈
    缺点:
    1)不能在表损坏后恢复数据

    适用场景:
    1)MyIsam极度强调快速读取

    1. MyIsam表中自动存储了表的行数,需要时直接获取即可
      3)适用于不需要事物支持、外键功能、及需要对整个表加锁的情形

小结:Mylsam引擎是不支持事务但是速度快

  1. Memory
    使用存在内存中的内容来创建表。每个MEMORY表只实际对应一个磁盘文件。MEMORY类型的表访问非常得快,因为它的数据是放在内存中的,并且默认使用HASH索引。但是一旦服务关闭,表中的数据就会丢失掉。 HEAP允许只驻留在内存里的临时表格。驻留在内存里让HEAP要比ISAM和MYISAM都快,但是它所管理的数据是不稳定的,而且如果在关机之前没有进行保存,那么所有的数据都会丢失。在数据行被删除的时候,HEAP也不会浪费大量的空间。HEAP表格在你需要使用SELECT表达式来选择和操控数据的时候非常有用。

    Memory同时支持散列索引和B树索引,B树索引可以使用部分查询和通配查询,也可以使用<,>和>=等操作符方便数据挖掘,散列索引相等的比较快但是对于范围的比较慢很多

可能的缺点:

  1. 要求存储的数据是数据长度不变的格式,Blob和Text类型数据不可用(长度不固定)

  2. 用完表格后表格便被删除

适用场景:

1)那些内容变化不频繁的代码表,或者作为统计操作的中间结果表,便于高效地对中间结果进行分析并得到最终的统计结果

2)目标数据比较小,而且非常频繁的进行访问,在内存中存放数据,如果太大的数据会造成内存溢出。可以通过参数max_heap_table_size控制Memory表的大小,限制Memory表的最大的大小

3)数据是临时的,而且必须立即能取出用到,于是可存放在内存中

4)存储在Memory表中的数据如果突然间丢失的话也没有太大的关系

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值