我正在建立一个系统,用户可以上传他们想要的任何文件,而不是用它来执行任何类型的代码。作为其中的一部分,我重命名每个文件,并将其原始名称存储在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中实现这个目标吗?
答案 0 :(得分:0)
MyISAM表的最大问题是它们不是事务性的。根据你的说法,你只会创建记录然后阅读它们(可能会在以后删除它们),但很少或根本没有编辑。这种情况是MyISAM的设计目标,对于大多数只读记录来说速度很快。就个人而言,我认为没有优势转换为InnoDB。