In MySQL InnoDB, what is the difference between COMPRESSED, COMPACT and DYNAMIC for ROW_FORMAT?

What are the benefits between each other?

在 MySQL InnoDB 中,COMPRESSED, COMPACT 和DYNAMIC对于用户来说ROW_FORMAT?彼此之间有什么好处?

COMPACT is format supported by Antilope. It stores first 768 bytes of BLOB in case its value doesn't fit in page.

DYNAMIC is almost the same as COMPACT except only 20 bytes for each BLOB field is used. Benefits - more BLOB fields are possible in a record.

COMPRESSED is used for compressed tables. Hence its benefits.

COMPACT 的格式由 Antilope 支持。它存储前 768 个字节的 BLOB,以防其值不适合页面。

DYNAMIC 与 COMPACT 几乎相同,但每个 BLOB 字段仅使用 20 个字节。优势 - 记录中可能有更多的 BLOB 字段。

压缩用于压缩表。因此,它的好处。

使用 DYNAMIC 或压缩意味着 InnoDB 存储完全在页面外不合的页面中的 varchar/文本/blob 字段。但是,除了那些列(每个列只计数 20 个字节)以外的,InnoDB 行大小限制没有改变;它仍然限制在每行约 8000 个字节。

InnoDB 仅支持每列 767 字节的索引。您可以通过设置和使用动态或压缩行格式来提高此 3072 字节。innodb_large_prefix=1

使用压缩行格式不会使 InnoDB 支持更长的索引。

关于性能,这是"视情况而定"的情况之一。压缩通常是在存储大小和 CPU 负载之间权衡以压缩和取消压缩。的确,使用压缩数据需要多一些 CPU,但您必须记住,数据库服务器通常在等待 I/O,并且有 CPU 资源需要备用。

但并非总是 -- 如果对缓冲池中的数据进行复杂查询,则可能受 CPU 限制超过 I/O。因此,这取决于许多因素,例如数据在 RAM 中的拟合程度、运行的查询类型、秒查询数以及硬件规格。太多因素,其他人无法回答您的服务器上的应用程序。你只需要测试它。

重新评论:

一种可能性是索引不适合缓冲池。如果索引搜索需要在每次 SELECT 查询期间加载页面并逐出页面,则性能会显著降低。解释分析无法告诉您索引是否适合缓冲池。

我不知道索引中列的列数或数据类型,但如果对长 varchar 列编制索引,则应考虑使用前缀索引(或减少列的长度)。

您还可以获得更多 RAM 并增加缓冲池的大小。

COMPRESSED:将压缩数据。文本会压缩得很好。我有几个表, 以前用DYNAMIC, 移动到COMPRESSED。

我使用 Mysql 5.7

表:

id (int)

some_other_id (国际)

文本(长文本) - utf8mb4_unicode_ci 500KB/行平均值

updated_at (国际)

created_at (国际)

与动态相比,压缩占用的空间减少 80%。之前: 80gb, 之后: 16gb巨大的保存, 而我不需要这么多的数据。

其他表并没那么戏夸张,但它保存了 +50%的地方有一些文本字段。例如,另一个从 6.4Gb -> 3.1Gb 与 1.5M 行。

我还没有更改为压缩较小的表,大多保存整数/位和类似。这些表的空间已经很小,因此无需为它们使用更多的 CPU。

总结来源:Internet

文章来源:刘俊涛的博客 欢迎关注公众号、留言、评论,一起学习。

mysql compact_在 MySQL InnoDB 中,COMPRESSED, COMPACT 和DYNAMIC 有什么区别?相关推荐

  1. MySQL的核心之InnoDB中的花式索引

    搞清楚了MySQL底层的数据结构B+树后,我们应该知道整棵树的非叶子节点存放的都是仅仅是索引,而真正的值都存储在叶子节点中.而我们的MySQL中的索引种类其实又细分为了很多种,本篇带大家一起熟悉MyS ...

  2. mysql时间函数now()_MySQL中时间函数NOW()和SYSDATE()的区别

    mysql中日期函数还是比较常用的.主要有NOW()和SYSDATE()两种,虽然都表示当前时间,但使用上有一点点区别. NOW()取的是语句开始执行的时间,SYSDATE()取的是动态的实时时间. ...

  3. mysql的varchar 和text_MySQL中char、varchar和text的区别

    引自:http://www.sensail.com/archives/85 他们的存储方式和数据的检索方式都不一样. 数据的检索效率是:char>varchar>text 空间占用方面,要 ...

  4. mysql compact_[MySQL]InnoDB行格式剖析_MySQL - compact

    ... $this->layout->main=View::make('dash')->nest('content','comments.list',compact('comment ...

  5. mysql compact_MYSQL中InnoDB和ROW_FORMAT=COMPACT - wangqiaowqo - JavaEye技术网站

    MYSQL中InnoDB是什么? 一种表驱动,除了innodb还有其它的,例如isam,myisam等. innodb的特色在于支持并发与表间引用 MySQL支持多种存储引擎,用户可以方便的选用不同的 ...

  6. MySQL/InnoDB中,乐观锁、悲观锁、共享锁、排它锁、行锁、表锁、死锁概念的理解

    MySQL/InnoDB的加锁,一直是一个面试中常问的话题.例如,数据库如果有高并发请求,如何保证数据完整性?产生死锁问题如何排查并解决?我在工作过程中,也会经常用到,乐观锁,排它锁,等.于是今天就对 ...

  7. mysql 散列查询_MySQL InnoDB中hash查找表的实现

    MySQL版本:5.7.14 源码位置为hash0hash.h hash0hash.cc 作为一种时间复杂度最优为O(1)的数据结构,但是最坏时间复杂对位O(n)的一种数据结构,但是在良好的设计has ...

  8. MVCC在MySQL的InnoDB中的实现

    在InnoDB中,会在每行数据后添加两个额外的隐藏的值来实现MVCC,这两个值一个记录这行数据何时被创建,另外一个记录这行数据何时过期(或者被删除). 在实际操作中,存储的并不是时间,而是事务的版本号 ...

  9. innodb中master线程的调度的算法改进(mysql 5.6.26)

    innodb中master线程的调度的算法改进(mysql 5.6.26)作者:周琳QQ:715169549源码交流群:1963809051.master线程的调度:/**************** ...

最新文章

  1. pycharm如何修改背景成护眼色和字体大小
  2. python提示install无效_为什么是python设置.py给我“错误:选项installdir无法识别”错误?...
  3. LiveVideoStack 主编观察 01
  4. hibernate多对多、正向工程创建数据表——访问温馨提示
  5. 实验4 [bx]和loop的使用
  6. 剑指Offer字符串转换成整数
  7. 蒋涛:《Orange’S:一个操作系统的实现》属于真正Hacker的
  8. kafka和mqtt的区别和联系
  9. PS-fiveday-快速选择和魔棒工具(快速抠图)
  10. 2081.09.22 Kuma(非旋treap)
  11. Java 培训四个月能学会吗?
  12. 三、JavaSE_集合(Set)
  13. win10系统做T3服务器,win10如何安装用友t3_win10安装用友t3教程
  14. 读书百客:《送客之江西》赏析
  15. 大促中为什么需要可视化监控大屏?
  16. 9.FLINK Sink\API\自定义sink
  17. Galaxy S4 GT-I9500如何root 安卓5.0.1
  18. php 赠送礼品功能开发,类似礼物说送礼提醒的功能该怎么做?
  19. 信用卡透支忘还钱怎么办?
  20. java MP4解析 第二步 解析moov box

热门文章

  1. 英语Hecatolite月长石hecatolite月光石
  2. 高性能mysql学习笔记--高级特性
  3. html5页面加载执行动作,页面加载完成后执行JS的5种方式
  4. 种草一个让程序员男友记住一辈子的神仙插件!
  5. 猛学亚马逊:顾客至上 Obsession over customers
  6. Android菜谱应用客户端
  7. Python数据分析:数据库索引如何提高效率?
  8. 国内TeamViewer正版授权的代理商有哪些?如何查询?
  9. 从C++转向Rust:两大主题值得关注!
  10. 类似国外多语言wikipedia百度百科网站源码