【问题标题】:MySQL calculate RAM B+Tree's footprint for a single table (comparison with python data-struct)MySQL 计算单个表的 RAM B+Tree 占用空间(与 python 数据结构比较)
【发布时间】:2016-12-24 17:15:25
【问题描述】:

我现在在 Python 中缓存了以下数据:

id   timestamp   data-string

数据字符串大小约为 87 字节。以最佳方式将其存储在 python 中(使用 dict 并在带有分隔符的 data-str 前添加时间戳),每个条目的 RAM 成本约为 198 字节。这对于我需要的缓存大小来说是相当大的。

我想尝试在 MySQL 表中存储相同的内容,看看是否可以节省 RAM 空间。这样做时,我将其存储为:

id   timestamp   data-string
4B      4B
<---- PK ---->

我知道 MySQL 会将 InnoDB 表的索引(这就是我现在拥有的)加载到 RAM 中。因此,id(唯一)、时间戳和指向数据字符串的指针将驻留在 RAM 中。

我如何只为这个新表计算 MySQL 的 B+Tree 的完整 RAM 使用量(即包括元数据)?

【问题讨论】:

    标签: mysql performance b-tree b-tree-index


    【解决方案1】:

    有太多变量、填充等,估计 InnoDB BTree 将消耗多少 磁盘 空间是不切实际的。您引用的 2x 非常好。 buffer_pool 是 RAM 中的 缓存,所以你不能说 BTree 会像磁盘一样消耗 RAM 空间。缓存在 16KB 块上。

    (@ec5 有关于 当前 大小的详细信息,磁盘,索引的。)

    【讨论】:

      猜你喜欢
      • 2017-09-16
      • 2010-10-19
      • 1970-01-01
      • 2012-08-24
      • 2011-08-17
      • 1970-01-01
      • 2020-11-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多