基于其他列组合的MySQL InnoDB自动增量列

时间:2015-07-22 15:24:03

标签: php mysql innodb

我正在建立一个系统,用户可以上传他们想要的任何文件,而不是用它来执行任何类型的代码。作为其中的一部分,我重命名每个文件,并将其原始名称存储在MySQL表中。此表包含上载它的用户的ID以及上载的唯一ID。目前我这样做:

CREATE TABLE `uploads` (
    `user_id` INT(11) NOT NULL,
    `upload_id` INT(11) NOT NULL AUTO_INCREMENT,
    `original_name` VARCHAR(30) NOT NULL,
    `mime_type` VARCHAR(30) NOT NULL,
    `name` VARCHAR(50) NOT NULL,
    PRIMARY KEY (`user_id`, `upload_id`)
) ENGINE=MyISAM;

这意味着我将始终拥有user_id和upload_id的唯一组合,并且每个用户首​​次上传的ID都为1.但是我听说MyISAM是旧的,我宁愿使用InnoDB。 我有什么方法可以在InnoDB中实现这个目标吗?

1 个答案:

答案 0 :(得分:0)

MyISAM表的最大问题是它们不是事务性的。根据你的说法,你只会创建记录然后阅读它们(可能会在以后删除它们),但很少或根本没有编辑。这种情况是MyISAM的设计目标,对于大多数只读记录来说速度很快。就个人而言,我认为没有优势转换为InnoDB。