列的数据被截断

Air*_*ump 4 mysql sql phpmyadmin

你好,我尝试在我的桌子上插入来自 phpmyadmin 的数据,但我收到了这样的错误

1 row affected. Warning: #1265 Data truncated for column 'value' at row 1
Run Code Online (Sandbox Code Playgroud)

因为我的桌子是这样的

    CREATE TABLE IF NOT EXISTS `setting` (
  `setting_id` int(11) NOT NULL,
  `store_id` int(11) NOT NULL DEFAULT '0',
  `group` varchar(32) COLLATE utf8_bin NOT NULL,
  `key` varchar(64) COLLATE utf8_bin NOT NULL DEFAULT '',
  `value` text COLLATE utf8_bin NOT NULL,
  `serialized` tinyint(1) NOT NULL
) ENGINE=MyISAM AUTO_INCREMENT=28279 DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
Run Code Online (Sandbox Code Playgroud)

我尝试输入大约 5000 个数据,当我尝试插入其说错误数据截断时,我可以在其后输入大约 2000 个数据,谢谢。

e4c*_*4c5 5

列中的数据被截断显然意味着您的数据太宽,无法放入指定的列中。它是针对文本类型value的字段,文本字段只能容纳 65K 的数据。您需要更大的类型。也许MEDIUMTEXT可以容纳16MB的数据。

顺便说一句,因为您实际上是在列中存储二进制数据。MEDIUMBLOB 实际上可能是更好的选择。

最后但并非最不重要的 :

http://dev.mysql.com/doc/refman/5.7/en/miscellaneous-optimization-tips.html

使用 Web 服务器,将图像和其他二进制资源存储为文件,并将路径名存储在数据库中而不是文件本身。大多数 Web 服务器更擅长缓存文件而不是数据库内容,因此使用文件通常更快。(尽管在这种情况下您必须自己处理备份和存储问题。)