MySQL如何优雅的删除大表

前言

删除表,大家下意识想到的命令可能是直接使用DROP TABLE "表名",这是初生牛犊的做法,因为当要删除的表达空间到几十G,甚至是几百G的表时候。这样一条命令下去,MySQL可能就直接夯住了,外在表现就是QPS急速下降,客户请求变慢。

解决办法

1.业务低峰时间手动执行删除

这个可能就需要DBA不辞辛劳,大晚上爬起来删表了。

2.先清除数据,最后再删除的方式

譬如1000万条数据,写脚本每次删除20万,睡眠一段时间,继续执行。这样也能做到对用户无感知。

3.对表文件(idb文件)做一个硬链接来加速删除

这个方法利用了linux下硬链接的知识,来进行快速删除,不记得话可以回去翻一下《鸟哥的linux私房菜》

ln data_center_update_log.ibd data_center_update_log.ibd.hdlk

[root@mysql01 sports_center]# ll
总用量 19903792
-rw-r----- 1 mysql mysql       9076 10月 17 13:15 data_center_update_log.frm
-rw-r----- 2 mysql mysql 8447328256 12月 23 11:35 data_center_update_log.ibd
-rw-r----- 2 mysql mysql 8447328256 12月 23 11:35 data_center_update_log.ibd.hdlk

  • 执行上面命令后
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: JavaSpringBoot是一个基于Java语言开发的开源框架,它能够简化Java应用程序的开发,提供了一系列的库和工具,让开发者能够更加快速、简单地构建高效、可扩展的应用程序。 Mybatis是一款轻量级的持久层框架,它能够将Java对象与数据库中的数据进行映射,提供了简单、灵活、高效的数据库访问。 MySQL是一款广泛使用的开源关系型数据库管理系统,它提供了高性能、稳定可靠的数据存储和查询功能。Mybatis与MySQL的配合使用,能够帮助开发者更加便捷地进行数据库操作,提高应用程序的性能和效率。 WebSocket是一种在单个TCP连接上进行全双工通信的协议,能够实现服务器与客户端之间的实时数据传输。在JavaSpringBoot应用中使用WebSocket能够提供实时性强、互动性强的功能,例如在线聊天、实时更新等。 综上所述,JavaSpringBoot与Mybatis、MySQL、WebSocket的结合能够让开发者更加便捷地搭建高效、稳定的应用程序。通过Mybatis进行数据库操作,与MySQL进行数据的增删改查;通过WebSocket实现实时通信,提供用户互动和实时数据更新的功能。这四者的融合使用能够满足开发者对于高性能、高效率的需求,帮助开发者快速构建出强大的Web应用。 ### 回答2: Java Spring Boot是一种基于Java语言的开源框架,用于构建独立的、可扩展的企业级应用程序。它提供了一种快速开发的环境,内置了许多功能和插件,方便开发人员快速搭建和部署应用程序。 MyBatis是一种简化数据库访问的持久层框架,它允许开发人员使用映射文件或注解来映射Java对象和数据库表之间的关系。 MyBatis通过将SQL语句与Java代码解耦,提供了一种优雅而直观的方式来处理数据库操作,从而提高了应用程序的性能和可维护性。 MySQL是一个流行的关系型数据库管理系统,用于存储和管理数据。Spring Boot与MyBatis集成可以方便地将Java应用程序与MySQL数据库进行连接和交互,通过使用MyBatis的ORM功能,可以更加简便地进行数据库操作。 WebSocket是一种在Web浏览器和服务器之间实现全双工通信的技术。使用WebSocket,可以在Web应用程序中实现实时通信,例如在线聊天、实时更新和推送通知等。Spring Boot提供了对WebSocket的支持,可以轻松地集成和使用WebSocket来实现实时通信和交互。 综上所述,Java Spring Boot与MyBatis、MySQL和WebSocket的结合可以实现一个强大的应用程序。开发人员可以借助Spring Boot快速构建应用程序的骨架,使用MyBatis进行数据库操作和管理,将数据存储在MySQL中,并使用WebSocket实现实时通信和交互。这种组合可以提高开发效率、加快应用程序的响应速度,并为用户提供更好的用户体验。 ### 回答3: Java Spring Boot是一个开发框架,它简化了基于Java的应用程序的开发和部署过程。Spring Boot使开发人员能够快速构建产品级应用程序,并通过提供各种开箱即用的功能来降低开发的复杂性。 MyBatis是Java的持久化框架,它允许开发人员使用简单的XML或注解来配置和映射Java对象与数据库表之间的关系。MyBatis使开发人员能够轻松地执行数据库操作,包括检索,插入,更新和删除数据。 MySQL是一个开源的关系数据库管理系统,它是使用SQL语言进行交互的。它被广泛用于Web应用程序开发中,可以存储和管理大量结构化数据。 WebSocket是一种通信协议,它允许在客户端和服务器之间进行双向通信。与传统的HTTP请求-响应模型不同,WebSocket建立起一个持久连接,允许服务器主动推送数据给客户端。这使得我们可以实现实时通信和实时数据更新,而不需要依赖轮询或长轮询。 当我们将这些技术和框架结合在一起使用时,可以实现强大而高效的Web应用程序开发。使用Java Spring Boot作为应用程序的框架,我们可以快速构建和部署应用程序。MyBatis可以帮助我们轻松地与数据库进行交互,执行各种数据库操作。MySQL作为数据库提供持久化存储和管理数据的能力。而WebSocket则提供了实时通信和数据更新的功能,让我们的应用程序能够实时响应客户端的请求。 综上所述,Java Spring Boot、MyBatis、MySQL和WebSocket的结合使用可以实现高效、实时和可靠的Web应用程序开发。这些技术和框架的优势互补,可以帮助开发人员轻松构建出功能强大的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值