mysql一次性删除一千万条以上的数据时,可能会出现什么问题?
删除未完成。我建议您使用truncate命令。
delete语句一次删除一行,并在事务日志中记录每个删除行的条目。truncatetable通过释放用于存储表数据的数据页来删除数据,并且只在事务日志中记录页面释放。建议您使用mysqlguitools5.0工具mysqladministrator.exe在“服务器连接”中,找到正在执行删除的连接。您将看到一个进程正在执行delete语句。把这个过程干掉。然后执行truncatetablename,就可以了
在正常配置下,mysql只能承载2000万的数据(读写同时进行,表中有大的文本字段,一台服务器)。现在已经超过1亿,而且还在增加,建议按以下方式处理:
1子表。它可以按时间或一定的规则进行拆分,以便尽可能地查询子表中的数据库。这是最有效的方法。特别是写,放入一个新表,并定期同步。如果记录不断更新,最好将写入的数据放在redis中,并定期同步表3的大文本字段,将它们分隔成一个新的独立表。对于较大的文本字段,可以使用nosql数据库
4优化体系结构,或者优化sql查询,避免联合表查询,尽量不要使用count(*)、in、recursion等性能消耗语句
5使用内存缓存,或者在前端读取时增加缓存数据库。重复读取时,直接从缓存中读取。
以上是一种低成本的管理方法,基本上几个服务器就可以做到,但是管理起来有点麻烦。
当然,如果总体数据量特别大,并且您不关心投资成本,请使用集群或tidb
原文标题:mysql删除大量数据的优化 mysql一次性删除一千万条以上的数据时,可能会出现什么问题?,如若转载,请注明出处:https://www.saibowen.com/news/20992.html
免责声明:此资讯系转载自合作媒体或互联网其它网站,「赛伯温」登载此文出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,文章内容仅供参考。