我在Mysql数据库中建了张表,数据量很大,一删除电脑就卡,就显示未响应,求大神指导

我在Mysql数据库中建了张表,数据量很大,一删除电脑就卡,就显示未响应,求大神指导,第1张

不要用delete,可以尝试用下列办法

drop table tblname -- 彻底删除该表

truncate table tblname -- 快速删除数据,但是保存数据结构

更快删除大表请百度(直接给链接怕违规):

mysql删除大表更快的办法

1:Integrated Security参数

当设置Integrated Security为 True 的时候,连接语句前面的 UserID, PW 是不起作用的,即采用windows身份验证模式。

只有设置为 False 或省略该项的时候,才按照 UserID, PW 来连接。

Integrated Security 还可以设置为:sspi ,相当于 True,建议用这个代替 True。

Data Source=myServerAddressInitial Catalog=myDataBaseIntegrated Security=SSPI

Data Source=myServerAddressInitial Catalog=myDataBaseIntegrated Security=true

Data Source=myServerAddressInitial Catalog=myDataBaseUser ID=myUsernamePassword=myPasswordIntegrated Security=false

2:参数Trusted_Connection

Trusted_Connection=true,将使用当前的 Windows 帐户凭据进行身份验证

Trusted_Connection=false将不采用信任连接方式(也即不采用Windows验证方式),而改由SQL Server 2000验证方式

Server=myServerAddressDatabase=myDataBaseUser ID=myUsernamePassword=myPasswordTrusted_Connection=false

Server=myServerAddressDatabase=myDataBaseTrusted_Connection=True

3:Initial Catalog是你要连接的数据库的名字

4:WINCE连接

Data Source=myServerAddressInitial Catalog=myDataBaseIntegrated Security=SSPIUser ID=myDomain\myUsernamePassword=myPassword

最近遇到了一个坑,MySQL数据库服务器硬盘容量告警,而且因为非技术原因,还不能追加硬盘。

通过监控发现,磁盘IO一直100%。直接影响就是系统处理时间越来越长,接口响应耗时也越来越多。

经过分析,发现mysql业务数据库里有好几张大表,而且这几张大表行数都在5000万以上,文件大小都在100G和150G之间。

因为这些表都是备份表,第一反应就是找DBA直接清理掉这些表。 潜意识里以为drop table 和 truncate table效率很高,都会快速完成,但事实上不是。 但意外的是,在执行drop table时,直接导致数据库挂起了,而且还发生了主从切换。

第一次尝试失败。

第一次失败反应出来的问题是,如果数据文件过大,drop table *** 作也得慎用。

那我们可以在drop table之前,想办法把数据文件逻辑清空。比如Linux硬连接的方式,具体步骤如下(假如目标表名是test):

ln test.ibd test.ibd.hdlk

drop table test

此时,磁盘上真实的数据其实没删除,但数据库里的表,已经删除了。

rm test.ibd.hdlk

到此,数据就能快速清理成功了。


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

原文地址: http://outofmemory.cn/sjk/10067586.html

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

发表评论

登录后才能评论

评论列表(0条)

保存