有个开发了一个多月的大赛报名系统终于要上线了。上线前有一项重要的任务就是清理 MySQL 数据库中的测试数据。
简单粗暴的所有表都 truncate 一遍是不行的。因为还有一些是配置项表,和数据字典表,清空了就白忙活了。所以,需要记录哪些表是可以清理的,哪些是不行。
😅 使用 truncate 还是 delete
清理前,还有一个重要的概念。就是究竟是用 truncate 还是 delete 来清理数据表。
印象中,好多年前遇到过这个问题,还被 truncate 坑过一次。因为如果部分表用 truncate,而关联表不用的话,会导致数据错乱。原因是 truncate 会导致主键自增 ID 重置,即重新变为 1。一旦其他关联关系表没有清理,就会导致数据混乱。所以,对于我的使用场景,用 delete 是合适的。
顺便咨询了一下豆包 AI,发现也支持深度搜索了,还能直接出对比表格,Nice,清晰又直观。
📝 保留待清理表清单到项目文档中
存个档比较好,方便以后再次部署需要清理时使用。
微信关注我哦 👍
我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式