如何清理mysql数据库缓存数据?

如何清理mysql数据库缓存数据?,第1张

1、打开mysql的客户端 这里使用navicat,连接数据,等到navicat主页面,双击需要 *** 作的数据库连接。

2、登录到数据库主页面后,点击左侧的数据库连接,打开数据库,可以看到可以 *** 作的所有数据库。

3、这时有有两个数据库,目标是将数据1的所有数据同步到数据库2上,需要点击主页面上的。

4、打开工具菜单,选择数据库同步菜单,d出数据同步的对话框,可以选择数据源,目标数据库。

5、选择数据库源和需要 *** 作的数据库后,然后在选择目标数据库连接,目标数据库,然后在选择需要 *** 作的表,点击开始即可。

系统内有一只游戏日志表,每日以百万条数据增长,过段时间需要按照日期清理数据。同事使用delete循环删除过一次,时间久不说,表中的数据是删除了,但是查看服务器发现,*.idb文件大小居高不下,使用optimize table 表名 , 优化表以后,内存大小恢复正常。前前后后花费将近4个小时的时间。效率比较低,偶然想起TRUNCATE TABLE,决定使用以下方案,结果10分钟内,清除3千多万条废弃数据。记录以下,已备下次使用。

按以上步骤,可以解决锁表问题。

第一种方式 直接执行delete from T limit 10000,单个语句占用时间长,锁的时间也比较长;而且大事务还会导致主从延迟。

第一种方式 第二种方式是 相对 较好的

第三种方式 在20个连接中同时执行delete from T limit 500),会人为造成锁冲突。如果可以加上特定条件,将这10000行天然分开,可以考虑第三种,例如拿到了ID


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7322921.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-04
下一篇 2023-04-04

发表评论

登录后才能评论

评论列表(0条)

保存