我目前正在从事一个项目,该项目涉及更改存储在 MYSQL 数据库中的数据。由于我正在处理的表没有密钥,因此我使用以下命令添加了一个密钥:
ALTER TABLE deCoupledData ADD COLUMN MY_KEY INT NOT NULL AUTO_INCREMENT KEY
由于我想根据所选字段对记录进行分组,因此我尝试为包含 MY_KEY 以及所选字段的表 deCoupledData 创建一个索引。例如,如果我想使用字段 STATED_F 和 NOT_STATED_F,我输入:
ALTER TABLE deCoupledData ADD INDEX (MY_KEY, STATED_F, NOT_STATED_F)
真正的问题是我通常使用的字段超过 16 个,因此 MYSQL 不允许超键长于 16 个字段。总之,还有其他方法可以做到这一点吗?我可以(以某种方式)制作 MYSQL 以根据所需的超级键(类似于集群)对记录进行排序吗?我真的需要让我的脚本更快,主要开销是每个组可能包含未存储在磁盘同一页面上的记录,并且我假设我的电脑启动随机 I/O 以检索记录。
感谢您的时间。尼克·卡齐波拉基斯
CREATE TABLE deCoupledData (
AA double NOT NULL DEFAULT '0',
STATED_F double DEFAULT NULL,
NOT_STATED_F double DEFAULT NULL,
MIN_VALUES varchar(128) NOT NULL DEFAULT '-1,-1',
MY_KEY int(11) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (MY_KEY),
KEY AA (AA) )
ENGINE=InnoDB AUTO_INCREMENT=74358 DEFAULT CHARSET=latin1