linux服务器mysql利用merge存储引擎分表

26 篇文章 1 订阅

前言

服务器中存放新闻数据的一张表查询已经变得非常慢

经过查询发现数据已经达到1.8亿数据量,没有分过表,以至于查询变慢,而且由于表的锁机制导致应用操作也搜到严重影响,出现了数据库性能瓶颈。

当出现这种情况时,我们可以考虑分表,即将单个数据库表进行拆分,拆分成多个数据表,这样数据分散到多个数据表中,减少了单个数据表的访问压力。提升了数据库访问性能。

这里使用MERGE分表法来实现分表。

环境

centos6.7

mysql5.6.29

实现

实现分表的备份工作要做好,本地服务器测试两次后操作线上服务器还是有点慌。。

首先备份表结构和数据

mysqldump -uroot -p 数据库 表名 >/home/bakmysql/20190513/result.sql

数据库原来的表是Inoodb类型,如果使用merge的话需要将数据库引擎类型修改为MyISAM

ALTER TABLE result ENGINE=MyISAM;

修改提示出现问题,搜了一下发现是外键的原因,原来的表中是带有外键的

需要先将外键删除才可以继续执行修改引擎操作

代码已经修改过,删除外键不会影响实际网站

ALTER TABLE `result` DROP FOREIGN KEY `FK41175491`

删除完成之后再次执行修改引擎语句,由于表中数据实在太多,表数据量太大

数据库报错

ERR
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Beyond

打赏个666吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值