使用 MariaDB 10.1 和 InnoDB 表,如果文本字段不常被引用,将 TEXT 字段存储在不同的表中是否仍然有好处?我相信这是几年前完成的事情,不确定它是否仍然适用。
行数约为 80K,插入/更新不是很频繁(用于产品描述)。假设我们没有在任何地方使用 SELECT *!
使用 MariaDB 10.1 和 InnoDB 表,如果文本字段不常被引用,将 TEXT 字段存储在不同的表中是否仍然有好处?我相信这是几年前完成的事情,不确定它是否仍然适用。
行数约为 80K,插入/更新不是很频繁(用于产品描述)。假设我们没有在任何地方使用 SELECT *!
这样的技术细节通常只在频繁使用的桌子和/或大桌子中变得相关。在您的情况下(80k 行,罕见的 DML,NOT SELECT *)这两个标准都没有给出,所以我不会考虑让它过于复杂并将所有内容都放在一个表中。
如果您有频繁使用的表和/或大型表,则将几列与主表分开是有意义的。但现在它变得非常复杂。如果您想阅读我推荐的所有详细信息:
接着:
BLOB 和 TEXT 类型 https://dev.mysql.com/doc/refman/8.0/en/blob.html
InnoDB 表的压缩如何工作 https://dev.mysql.com/doc/refman/8.0/en/innodb-compression-internals.html
InnoDB 行格式 https://dev.mysql.com/doc/refman/8.0/en/innodb-row-format.html
请记住:在 MariaDB 10.3.7 及更高版本中,InnoDB 实现与 MySQL 中的 InnoDB 存在很大差异。因此,在这些版本中,InnoDB 版本不再与 MySQL 发布版本相关联。
这是一个简短的比较矩阵:
玛丽亚数据库 | InnoDB |
---|---|
10.0 | 5.6 |
10.1 | 5.6 |
10.2 | 5.7 |
10.3* | 5.7,发散 |
10.4* | 分歧的 |
10.5* | 分歧的 |
10.6* | 分歧的 |
不幸的是,我们没有太多关于 MariaDB 内部的文档。必须在 MariaDB 的 Jira 中搜索:https ://jira.mariadb.org