我的一个php项目使用mysql作为数据库。在这个项目中,PHP前端将允许用户修改数据库。并且它有一个列存储用户输入的数据。
之前我使用数据类型作为sallint(255)。当数据库开始增长需求时,自动要求为用户输入的数据提供更多存储空间,因此我将数据类型更改为TEXT,现在有一个特定点需要比TEXT提供更多的数据存储。特定列是否可以提供无限数据存储?
答案 0 :(得分:0)
您可以看到另外两种类型:
LONGTEXT
:TEXT列,最大长度为4,294,967,295或4GB(2 ^ 32 - 1)个字符。如果值包含多字节字符,则有效最大长度较小。 LONGTEXT列的有效最大长度还取决于客户端/服务器协议中配置的最大数据包大小和可用内存。每个LONGTEXT值使用一个四字节长度前缀存储,该前缀表示值中的字节数。LONGBLOB
强> 答案 1 :(得分:0)
BLOB和TEXT值可能非常长,使用它们时可能会遇到一些限制:
排序时只使用列的第一个max_sort_length个字节。 max_sort_length的默认值为1024.通过在服务器启动或运行时增加max_sort_length的值,可以在排序或分组中使更多字节显着。任何客户端都可以更改其会话max_sort_length变量的值:
mysql> SET max_sort_length = 2000;
mysql> SELECT id, comment FROM t
-> ORDER BY comment;
使用临时表处理的查询结果中BLOB或TEXT列的实例会导致服务器在磁盘而不是内存中使用表,因为MEMORY存储引擎不支持这些数据类型