Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php varchar的最佳列大小_Php_Mysql_Database_Varchar - Fatal编程技术网

Php varchar的最佳列大小

Php varchar的最佳列大小,php,mysql,database,varchar,Php,Mysql,Database,Varchar,我正在设计一个数据库,它可以存储各种大小的JSON字符串。我正在考虑使用不同的表(每个表有两列,'id'和'data')来存储不同的字符串大小(tinytext-bigtext)。在这种情况下,将从包含最小字符串大小的表开始搜索每个表 我还考虑使用一个具有单个字符串大小的表,并使用多行存储大型JSON字符串 ..或者我可以创建一个大VARCHAR大小的表,节省一些开发时间 我的设计有两点: 在某些情况下,mysql以“行”的形式存储小块数据,这有助于提高性能。这意味着什么?我如何利用这一点 在某

我正在设计一个数据库,它可以存储各种大小的JSON字符串。我正在考虑使用不同的表(每个表有两列,'id'和'data')来存储不同的字符串大小(tinytext-bigtext)。在这种情况下,将从包含最小字符串大小的表开始搜索每个表

我还考虑使用一个具有单个字符串大小的表,并使用多行存储大型JSON字符串

..或者我可以创建一个大VARCHAR大小的表,节省一些开发时间

我的设计有两点:

在某些情况下,mysql以“行”的形式存储小块数据,这有助于提高性能。这意味着什么?我如何利用这一点

在某些情况下,mysql将VARCHAR处理为其最大的可能大小。什么时候会发生这种情况?我如何避免它?

使用255


不过,作为补充说明,如果您使用PHP并试图插入超过1000个字符的字符串,则需要在插入之前将PHP端的最大列大小截断,否则会出错。

从数据库的角度来看,varchar没有特定的“好”长度。但是,请尝试将最大行大小保持在8kb以下,包括非聚集索引。然后您将避免MySQL将数据存储在行外,这会影响性能

如果我的数据库设置为使用UTF-8,那将是大约8000个ascii字符或大约1200个字符,在最坏的情况下,senario right?存储
Varchar
数据服务器使用
字符数+1字节
,而
Nvarchar
则使用
字符数*2+2字节
。查看Dev.MySQLIt上的一篇专门文章,这篇文章似乎主要关注磁盘空间,而我的文章更关注处理时间。