执行mysqldump时陷入循环

时间:2018-12-16 02:39:41

标签: mysql innodb

我有一个约有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图像”,并在mysqldump选项中添加了锁表选项。但是我仍然想知道由第一个命令引起的不确定循环的原因。

0 个答案:

没有答案