mysql mediumtext&最大行大小

时间:2016-08-19 05:10:43

标签: mysql

我对两个相互矛盾的陈述感到困惑。我反复阅读一行的最大大小是64KB。那么,例如,如果整行最大为64KB,那么中间文列可以是16MB是什么意思? (我正在使用InnoDB。)

我也有两个相关的问题。

在实践中,中间字段是固定的还是可变长度的?在转储它看起来是变量,但实际上,或者db记录总是为它分配16MB?

是否存在一种共识,即中间文本与varchar之类的任何较小的亲戚一样有用,或者一般认为最好将文件用于超过60KB左右的文本?

我知道这些是新手问题,但在来到这里之前我做了相当多的搜索,但我找不到答案。我们将非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

行不限于64KB,甚至没有任何我能想到的合格方式。如果您有指向该限制的位置的链接,请告诉我。

我收集了MySQL here中的大部分“硬”限制。

// Inflate the layout for this fragment View view = inflater.inflate(R.layout.list_fragment, container, false); listView = (ListView) view.findViewById(R.id.testListView); listView.setAdapter(adapter); return view; 实现为3字节长度加上0到16MB字节的文本。其他MEDIUMTEXTTEXT数据类型的设计类似。它们都是“可变长度”,而不是“固定”。

通常,使用最适合应用程序代码操作数据的数据类型。

事实证明,BLOBLONGTEXT很难直接加载,因为“变量”LONGBLOB的默认值为16MB。我不确定您是否需要确定(max_allowed_packet * innodb_log_file_size)> 10 *你将拥有的最大innodb_log_files_in_group。 (我认为我没有听说有人遇到这样的问题。

使用合理的大小声明TEXT而不是常见的VARCHARs略有优势。较大的varchars和255之间可能没有区别,除了截止值。

文件与文本/ blob ...这是论坛上的常见问题,通常与TEXT中的图像存储有关。这两种方法都有优点/缺点。

相关问题