php操作mysql InnoDB表,导出并删除日志表里数据,由于数据量过大

有这么一个需求,现在有一个表是系统日志表,由于表数据量太大,现在每天执行一次定时任务,把表里的数据先导出到本地,然后清空,表里的数据。在清空表里数据的时候,由于数据量太大... 有这么一个需求,现在有一个表是系统日志表,由于表数据量太大,现在每天执行一次
定时任务,把表里的数据先导出到本地,然后清空,表里的数据。在清空表里数据的时候,由于数据量太大,需要点时间,这时有新的日志写入的时候把新数据写入到另一张同结构的表里,等原日志表删除完以后,就可以往进写日志了,再把副表里写入的数据,导入到主表中。
我有个思路,在我准备执行导出和删除时,将表锁住,执行完以后,再给表解锁。主表锁住这段时间就给副表写,但是我不知道php怎么判断表是不是被锁了,因为我想通过判断表是不是被锁住,切换写入的数据表。
求大神指点思路,能详细点,非常感谢!
展开
 我来答
风荷醉香Dm
2017-09-02 · 超过33用户采纳过TA的回答
知道答主
回答量:176
采纳率:0%
帮助的人:48.9万
展开全部
下面是基本的步骤:
1 使用mysqldump命令将InnoDB数据库导出
2 停止MySQL
3 删除所有InnoDB数据库文件和日志
4 启动MySQL并自动重建InnoDB数据库文件和日志文件
5 导入前面备份的数据库文件还有什么疑问的话可以多去后盾们看一些相关的视频,这样你可以更加清楚。
追问
MySQL不能停止,我只操作日志表,其他表还要正常使用,所以只能锁表
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式