如果我有这样的表:
CREATE TABLE IF NOT EXISTS `codetransactions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`id_customer` int(11) DEFAULT NULL,
`id_cashier` int(11) DEFAULT NULL,
`id_code` int(11) DEFAULT NULL,
`program_type` int(11) DEFAULT NULL,
`id_codeaccount` int(11) DEFAULT NULL,
`tmstmp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`value1` int(11) DEFAULT NULL,
`value2` int(11) DEFAULT NULL,
`comment` varchar(150) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
我正在努力解决使用大规模数据挖掘的问题 - 这个varchar字段会大大减慢操作速度。
我现在的真正问题是:将此表拆分为两个表并将“注释”字段提取到另一个表是否更好?并不是每个事务都会有一个注释,并且在数据挖掘中varchar将是无关紧要的,或者这只是一种错觉,mysql会处理这个问题吗?
答案 0 :(得分:0)
如建议的那样 - 为另一个表创建一个索引,您可以在其中保留注释。而且你知道你添加到int字段的(11)实际上没有做任何其他事情然后设置可见性吗?
答案 1 :(得分:0)
所以当有任何用户评论时,该用户的id和评论将转到此表2 如果你想获得用户评论,那么你只需要搜索table2中的现有密钥 所以不需要插入空行..