0

如果我有这样的表:

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 会解决这个问题?

4

2 回答 2

0

按照建议 - 为您保留评论的另一个表创建索引。而且您还知道您添加到 int 字段的 (11) 实际上除了设置可见性之外并没有做任何其他事情?

于 2013-01-06T13:12:39.303 回答
0
  • 让另一个表说(table2)有列 -

    - id - 来自基表的外键,
    - 评论- varchar(150)

因此,当任何用户评论时,
如果您想获取用户评论,那么该用户的 id 和评论将转到此 table2,那么您只需搜索 table2 中的现有键。
所以不需要插入空行..

于 2013-01-06T13:37:59.320 回答