我有一个数据库(不是我自己),有大约140000张图片,只有一些(大约3500张)需要保存。我正试图用mysqldump来实现这一点,但不知何故,我似乎陷入了一个循环中。即使执行此过程时要保存的图像超过10个,sql转储文件的大小也会无限增长。
这是一个名为images的数据库表。
CREATE TABLE `images` (
`imageID` INT(11) NOT NULL AUTO_INCREMENT,
`runID_fk` INT(11) NULL DEFAULT NULL,
`sequenceID_fk` INT(11) NULL DEFAULT NULL,
`cameraID_fk` INT(11) NULL DEFAULT NULL,
`data` LONGBLOB NULL,
`timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`name` TEXT NULL,
`type` TEXT NULL,
`pcadata` LONGBLOB NULL,
PRIMARY KEY (`imageID`)
)
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
如果 type
设置为 perm
,则要保存图像。这是我的mysqldump命令:
mysqldump -u root --verbose -p (database name) images --where="imageID IN (SELECT imageID WHERE type='perm' AND imageID BETWEEN (some number) and (some number))">\location\backup.sql
这个命令可能有什么问题?
编辑:如果我将命令更新为
mysqldump -u root --single-transaction=true --verbose -p (database name) images --where="imageID IN (SELECT imageID FROM images WHERE type='perm' AND imageID BETWEEN (some number) and (some number))">\location\backup.sql
然后事情看起来很好。我基本上在内部查询中添加了“from images”,并在 mysqldump
选项。但我还是想知道第一个命令导致不确定循环的原因。
暂无答案!
目前还没有任何答案,快来回答吧!