Mariadb 列存储的最大限制是多少?
What are maximum limits of Mariadb columnstore?
我想在 mariadb columnstore 中创建数千行的 table。我没有找到存储引擎允许的最大列数的任何文档。我还想知道 columnstore 对于 1000 个整数列的性能如何?
(注意:此 'Answer' 是基于我对设计的理解,而不是任何 'facts'。)
table 的磁盘占用空间应与列数成正比。
与 MariaDB 中的大多数东西一样,列数可能有硬性限制,但我认为没有理由低于 1000。也许,相反,2 的一些更大的幂。
当仅引用少量列时,table 中有多少列无关紧要。数据的结构方式应该允许以相对固定的工作量获取每一列。
对于过滤,我希望所做的工作取决于用于过滤的列数及其分布。如果您的 WHERE
子句引用了很多列,我预计不会有好的性能。
对于任何引擎,拥有很多列不一定是明智的设计。一般来说,当你有很多不用于过滤或排序的列(WHERE
、ORDER BY
)时,你不妨将它们扔进一个JSON字符串(或其他结构)并存储为单个 TEXT
或 BLOB
列。然后让应用程序解析字符串以获取各个列。
Columnstore 因 'filtering' 而大放异彩。它在压缩数据方面也非常出色,我的 JSON 建议会打败它。但是现在您要在速度与space 之间进行权衡,这些权衡是非常特定于数据的。
您愿意描述一下您提议的数据集吗?
Columnstore 的列数没有限制,但数据摄取性能不是最好的 ATM。我们将在不久的将来显着减少时间。
当我尝试创建一个包含 2310 列的 ColumnStore table 时,它返回“错误代码:1117。Table 定义太大”。
我减少了列数,然后重试。
看起来 MariaDB ColumnStore 的最大列数是 2201。
我想在 mariadb columnstore 中创建数千行的 table。我没有找到存储引擎允许的最大列数的任何文档。我还想知道 columnstore 对于 1000 个整数列的性能如何?
(注意:此 'Answer' 是基于我对设计的理解,而不是任何 'facts'。)
table 的磁盘占用空间应与列数成正比。
与 MariaDB 中的大多数东西一样,列数可能有硬性限制,但我认为没有理由低于 1000。也许,相反,2 的一些更大的幂。
当仅引用少量列时,table 中有多少列无关紧要。数据的结构方式应该允许以相对固定的工作量获取每一列。
对于过滤,我希望所做的工作取决于用于过滤的列数及其分布。如果您的 WHERE
子句引用了很多列,我预计不会有好的性能。
对于任何引擎,拥有很多列不一定是明智的设计。一般来说,当你有很多不用于过滤或排序的列(WHERE
、ORDER BY
)时,你不妨将它们扔进一个JSON字符串(或其他结构)并存储为单个 TEXT
或 BLOB
列。然后让应用程序解析字符串以获取各个列。
Columnstore 因 'filtering' 而大放异彩。它在压缩数据方面也非常出色,我的 JSON 建议会打败它。但是现在您要在速度与space 之间进行权衡,这些权衡是非常特定于数据的。
您愿意描述一下您提议的数据集吗?
Columnstore 的列数没有限制,但数据摄取性能不是最好的 ATM。我们将在不久的将来显着减少时间。
当我尝试创建一个包含 2310 列的 ColumnStore table 时,它返回“错误代码:1117。Table 定义太大”。
我减少了列数,然后重试。 看起来 MariaDB ColumnStore 的最大列数是 2201。