如果我有一个这样的表:
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字段将极大地减慢操作。
我现在真正的问题是:将这个表分成两个表并将"comment“字段提取到另一个表中是不是更好?并不是每个事务都会有注释,通过数据挖掘,varchar将变得无关紧要,或者这只是一种错觉,mysql会解决这个问题?
发布于 2013-01-06 21:12:39
如建议的那样-创建到另一个表的索引,在其中保存注释。您还知道您添加到int字段的(11)除了设置可见性之外实际上不做任何其他事情吗?
发布于 2013-01-06 21:37:59
- **id** - foreign key from your base table,
- **comment** - varchar(150)因此,当任何用户发表评论时,该用户的id和评论将转到此table2
如果你想得到用户的评论,那么你只需要在table2中搜索现有的键。
所以不需要插入空行..
https://stackoverflow.com/questions/14182445
复制相似问题