mysql数据变少了_纳尼,mysqldump导出的数据居然少了40万?

在使用mysqldump备份数据时,通过-w选项过滤特定时间范围的数据,发现导出的数据比实际少了40万条。问题源于时区设置,写入数据使用的是0时区时间,而mysqldump使用的是本地时间(东8区),导致8小时的差距。解决方案是调整mysqldump的where条件时间值或修改MySQL全局时区,但后者可能引发更多问题。
摘要由CSDN通过智能技术生成

0、导读

用mysqldump备份数据时,加上 -w 条件选项过滤部分数据,发现导出结果比实际少了40万,什么情况?

本文约1500字,阅读时间约5分钟。

1、问题

我的朋友小文前几天遇到一个怪事,他用mysqldump备份数据时,加上了 -w 选项过滤部分数据,发现导出的数据比实际上少了40万。

要进行备份表DDL见下:

CREATE TABLE `oldbiao` (

`aaaid` int(11) NOT NULL,

`bbbid` int(11) NOT NULL,

`cccid` int(11) NOT NULL,

`time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,

`dddid` int(11) DEFAULT NULL,

KEY `index01` (`ccccid`),

KEY `index02` (`dddid`,`time`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

顺便吐槽下,这个表DDL设计的真是low啊。没主键,允许NULL。

mysqldump备份指令增加的 -w/-where 选项是:

-w “time>‘2016-08-01 00:00:00′”

加上这个参数的作用是:只备份 2016-8-1 之后的所有数据,相当于执行了下面这样的SQL命令:

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值