2016-11-10 96 views
1

您好IM尝试插入我的表从phpmyadmin的数据,但我得到的错误是这样数据截断列

1 row affected. Warning: #1265 Data truncated for column 'value' at row 1 

我talble是这样

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; 

我尝试在5000左右的数据放我可以输入2000左右后,当我尝试插入它的说错误数据截断谢谢。

+0

向我们展示您的INSERT查询.. –

+0

我相信你的数据'value'列比它的极限(64 KB)放大 – Hermanto

回答

2

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

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

最后但并非最不重要的:

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

与Web服务器,存储图像和其他二进制资产的文件,与 路径名存储在数据库中,而不是文件本身。大多数 Web服务器是在缓存文件比数据库内容好,所以 使用文件一般要快。 (虽然你必须处理备份和 存储问题自己在这种情况下)。