zoukankan      html  css  js  c++  java
  • MySQL 存储引擎

    查看方式:show engines

    四种常见的存储引擎:

    InnoDB引擎

    InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,InnoDB是默认的MySQL引擎。

    1、更新密集的表。InnoDB存储引擎特别适合处理多重并发的更新请求。

    2、支持事务。

    3、支持行级锁

    4、崩溃恢复能力强。与其它存储引擎不同,InnoDB表能够自动从灾难中恢复。

    5、InnoDB支持外键完整性约束。

    6、InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB将它的表和索引在一个逻辑表空间中,表空间可以包含数个文件(或原始磁盘文件)。这与MyISAM表不同,比如在MyISAM表中每个表被存放在分离的文件中。

    7、InnoDB被用在众多需要高性能的大型数据库站点上。InnoDB不创建目录,使用InnoDB时,MySQL将在MySQL数据目录下创建一个名为ibdata1的10MB大小的自动扩展数据文件,以及两个名为ib_logfile0和ib_logfile1的5MB大小的日志文件

    MyISAM

    MyISAM拥有较高的插入(它是顺序插入的,而 InnoDB 插入还要考虑排序)、查询速度,但不支持事物。对事务完整性没有要求或者以SELECT、INSERT为主的应用可以使用该引擎。

    1、每个MyISAM表最大索引数是64,这可以通过重新编译来改变。每个索引最大的列数是16

    2、支持全文索引,不支持行级锁。BLOB和TEXT列可以被索引

    3、所有数字键值以高字节优先被存储以允许一个更高的索引压缩

    4、每个MyISAM类型的表都有一个AUTO_INCREMENT的内部列,当INSERT和UPDATE操作的时候该列被更新,同时AUTO_INCREMENT列将被刷新。所以说,MyISAM类型表的AUTO_INCREMENT列更新比InnoDB类型的AUTO_INCREMENT更快

    5、使用MyISAM引擎创建数据库,将产生3个文件。文件的名字以表名字开始,扩展名之处文件类型:.frm文件存储表定义、数据文件的扩展名为.MYD(MYData)、索引文件的扩展名时.MYI(MYIndex)。在做迁移的时候就很方便。数据和索引是分离的

    6、MyISAM的表还支持3种不同的存储格式:

    • 静态(固定长度)表:这是默认的格式。静态表中的字段都是非变长字段,这样每个记录都是固定长度的,这种存储方式的优点是存储非常迅速,容易缓存,出现故障容易恢复;缺点是占用的空间通常比动态表多。
    • 动态表:包含变长字段,记录不是固定长度的,这样存储的优点是占用空间较少,但是频繁到更新删除记录会产生碎片,需要定期执行OPTIMIZE TABLE语句或myisamchk -r命令来改善性能,并且出现故障的时候恢复相对比较困难。
    • 压缩表:压缩表由myisamchk工具创建,占据非常小的空间,因为每条记录都是被单独压缩的,所以只有非常小的访问开支。 

    MEMORY

    MEMORY存储引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问。

    1、MEMORY表的每个表可以有多达32个索引,每个索引16列,以及500字节的最大键长度

    2、MEMORY存储引擎执行HASH和BTREE索引

    3、可以在一个MEMORY表中有非唯一键值

    4、MEMORY表使用一个固定的记录长度格式

    5、MEMORY不支持BLOB或TEXT列

    6、MEMORY支持AUTO_INCREMENT列和对可包含NULL值的列的索引

    7、MEMORY表在所由客户端之间共享(就像其他任何非TEMPORARY表)

    8、MEMORY表内存被存储在内存中,内存是MEMORY表和服务器在查询处理时的空闲中,创建的内部表共享

    B+ vs Hash

    • B+树索引:范围查询(between 、> 、 <)和通配能力。等值匹配较哈希索引慢。
    • 散列索引:进行“相等比较”非常快,但是对“范围比较”的速度就慢多了,因此散列索引值适合使用在 = 和 <> 的操作符中,不适合在 < 或 > 操作符中,也同样不适合用在order by子句中。

    ARCHIVE

    Archive是归档的意思,在归档之后很多的高级功能就不再支持了,仅仅支持最基本的插入和查询两种功能。

    在MySQL 5.5版以前,Archive是不支持索引,但是在MySQL 5.5以后的版本中就开始支持索引了。

    Archive拥有很好的压缩机制,它使用zlib压缩库,在记录被请求时会实时压缩,所以它经常被用来当做仓库使用。

  • 相关阅读:
    Fedora kde桌面安装拼音输入法
    人大金仓数据库添加外键,删除外键
    东方通 TongWeb 远程调试相关脚本
    IDEA快捷键提示插件
    使用 url.openConnection、IOUtils.write 从网站下载文件与本地文件对比
    CAS服务端返回用户ID等扩展信息
    libvirt 启用TCP远程连接,windows平台java调用示例
    virsh创建虚拟机
    etcd_dbsize 只能使用2G限制修改
    通过备份 Etcd 来完美恢复 Kubernetes 中的误删数据
  • 原文地址:https://www.cnblogs.com/lxpursue/p/9834522.html
Copyright © 2011-2022 走看看