mysql truncate table 很慢_mysql数据库truncate表时间长处理

本文描述了一个在Linux环境下,MySQL 5.7.18中Truncate操作100GB InnoDB List分区表导致长时间延迟的问题。通过分析数据库日志和参数,发现脏页比例过高(innodb_max_dirty_pages_pct为90%)。解决方案是将该参数调整为50%,调整后Truncate操作在1分钟内完成。建议在低活跃的历史数据库中适当调整此参数。
摘要由CSDN通过智能技术生成

【环境介绍】

系统环境:Linux + mysql 5.7.18 + 主从复制架构

【背景描述】

客户反映用在mysql数据库上truncate一个innode引擎的list分区100G左右表时,耗时时间非常久,执行命令期间数据库运行非常缓慢,新连接无法登录,连旧连接都是卡主。

【问题处理】

数据库后台日志信息:

2018-04-17T07:01:50.963763Z 0 [Warning] InnoDB: A long semaphore wait:

--Thread 139922526992128 has waited at btr0sea.ic line 90 for 241.00 seconds the semaphore:

X-lock (wait_ex) on RW-latch at 0xa49e6a08 created in fileline 195

a writer (thread id 139922526992128) has reserved it in mode  wait exclusive

number of readers 1, waiters flag 1, lock_word: ffffffffffffffff

Last time read locked in file btr0sea.ic line 128

Last time write locked in file /export/home/pb2/build/sb_0-22759043-1489826356.96/mysql-5.7.18/storage/innobase/btr/line 3874

InnoDB: ###### Starts InnoDB Monitor for 30 secs to print diagnostic info:

InnoDB: 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值