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压缩库,在记录被请求时会实时压缩,所以它经常被用来当做仓库使用。

  • 相关阅读:
    Golang Failpoint 的设计与实现
    没涉及到最值求解;观点:矩阵乘法无法表达出结果。 现实生活中事件、现象的数学表达
    多元微分学 枚举破解15位路由器密码 存储空间限制 拆分减长,求最值 数据去重
    ARP Poisoning Attack and Mitigation Techniques ARP欺骗 中间人攻击 Man-In-The-Middle (MITM) attack 嗅探 防范 Can one MAC address have two different IP addresses within the network?
    The C10K problem
    HTTP Streaming Architecture HLS 直播点播 HTTP流架构
    现代IM系统中消息推送和存储架构的实现
    现代IM系统中的消息系统架构
    长连接锁服务优化实践 C10K问题 nodejs的内部构造 limits.conf文件修改 sysctl.conf文件修改
    doubleclick cookie、动态脚本、用户画像、用户行为分析和海量数据存取 推荐词 京东 电商 信息上传 黑洞 https://blackhole.m.jd.com/getinfo
  • 原文地址:https://www.cnblogs.com/lxpursue/p/9834522.html
Copyright © 2011-2022 走看看