mysql线上数据库单表超过200G的处理

tbl_user_data占用了大量磁盘空间,数据表占用大概200G,索引30G左右,查询非常慢,影响业务的支持进行现在需要对它进行清理

临时解决方案是将原表重命名,新建一个和这个表相同的空表来替换(缺点是不能做到根治,隔一段时间以后需要重新处理)

根除的办法是重新设计,或者在客户端进行过滤避免过多垃圾数据进入系统

1.新建一个和现在表相同结构的表
create table tbl_user_data_new like tbl_user_data

将主键的ID改为bigint并且unsigned无符号,存储大一倍

2.停用服务端服务,需要根据实际业务选择暂停服务时间

3.重命名原表并且20170809bak
将tbl_user_data_new改为tbl_user_data即可

4.重新启动服务,看到已经有新的数据进入到刚才的表中,此处变更成功

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于MySQL线上数据库配置,以下是一些常见的配置项和建议: 1. 字符集配置: - 设置字符集为UTF-8(或者utf8mb4),以支持存储和处理各种语言的数据。 - 在my.cnf配置文件中的[mysqld]段中添加如下配置: ``` character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci ``` 2. 缓冲配置: - 配置适当的缓冲区来提高性能。常见的缓冲区包括: - key_buffer_size:索引缓冲区大小,用于存储索引数据。 - innodb_buffer_pool_size:InnoDB引擎的缓冲池大小,用于存储数据和索引。 - 根据服务器的可用内存和数据库的大小进行调整。 3. 连接和并发配置: - 配置最大连接数(max_connections)来限制同时连接到数据库的客户端数量。根据实际需求和服务器资源进行调整。 - 配置适当的线程缓冲区大小(thread_cache_size)以提高连接性能。 4. 查询优化配置: - 配置查询缓存(query_cache)来缓存查询结果,以提高性能。但请注意,对于高并发写入的场景,查询缓存可能会导致性能下降。 - 配置适当的innodb_buffer_pool_instances参数,以实现更好的并发性能。 5. 日志配置: - 配置适当的日志记录级别,以便在需要时进行故障排查和性能分析。 - 根据需要启用慢查询日志(slow query log),以帮助识别和优化性能较差的查询。 注意:以上只是一些常见的配置项和建议,具体的配置可能会根据业务需求和服务器资源进行调整。在进行任何配置更改之前,建议先备份数据库,并在测试环境中进行验证。此外,确保了解每个配置项的含义和影响,以避免潜在的问题或安全风险。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值