MySQL数据库临时提高性能的方法

MySQL数据库临时提高性能的方法

短连接风暴

  连接数量超过max_connections时,新来的连接会被拒绝。这时有一些临时解决办法(注意这些办法都是有损的)

  1. kill掉那些占用连接但未进行事务操作的线程,注意如果数据库端主动断开连接,客户端是不能立刻感知的。
  2. 让数据库建立连接时跳过权限验证阶段,重启数据库,并使用–skip-grant-tables参数启动,注意这样对于存在外网IP的数据库是十分危险的

慢查询问题

索引没设计好
  这时可以用online DDL增加索引。比较理想的是能够在备库先执行。假设你现在的服务是一主一备,主库A、备库B,这个方案的大致流程是这样的:

  1. 在备库B上执行 set sql_log_bin=off,也就是不写binlog,然后执行alter table 语句加上索引;
  2. 执行主备切换;
  3. 这时候主库是B,备库是A。在A上执行 set sql_log_bin=off,然后执行alter table 语句加上索引。

SQL语句没设计好
  可以通过query_rewrite,增加规则使得数据库语句强行改写
索引选错了
  用force index

参考文献

MySQL实战45讲

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值