【问题标题】:Why does TokuDB impose a limit of 64 keys per table?为什么 TokuDB 对每个表施加 64 个键的限制?
【发布时间】:2017-09-21 06:54:06
【问题描述】:

为什么 TokuDB 默认每个表有 64 个键的限制, 而像 Elasticsearch 这样的系统允许对任意数量的字段进行索引(仅受可用资源限制)?

【问题讨论】:

    标签: tokudb


    【解决方案1】:

    简短的回答,因为在某些时候您只需要在您的软件中设置限制。 TokuDB 是 MySQL 的存储引擎,它支持的操作比 Elasticsearch 多得多,因此需要权衡取舍。由于 TokuDB 是开源的,我想你可以在源代码的某个地方找到这个值并将其提升到更高的值,然后编译、测试和部署。

    【讨论】:

    • 必须进行权衡是有道理的,但我对任何细节感到好奇 - 允许 > 64 个索引并添加一些额外的索引会对哪些 SQL 操作产生负面影响元数据字节跟踪它们?
    • 您添加的每个索引都会增加 DML 的工作量。例如:没有索引的表,插入是插入一棵树;一个索引,一个插入两棵树(2x 工作);有两个索引,一个插入三棵树(3x 工作);等然后考虑更新。改变键的一部分的更新不是更新,而是一次删除和一次插入。另一个考虑因素是额外索引到底有多有用,以及 MySQL 优化器是否可以合法地决定在任何特定查询中使用一个而不是另一个。此外,正如我在下面所说,限制是 MySQL 编译时间限制,而不是 TokuDB 限制。
    【解决方案2】:

    这是一个 MySQL 限制,grep MAX_INDEXES

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多