Mysql删除数据特别慢及解决方法 您所在的位置:网站首页 卸载速度太慢 Mysql删除数据特别慢及解决方法

Mysql删除数据特别慢及解决方法

2024-06-18 03:13| 来源: 网络整理| 查看: 265

Mysql删除数据特别慢及解决方法 1.前言

笔者的mysql表数据量大概是1亿条,然后直接删除某一批次数据的时候,删除操作极其缓慢,执行了很久之后都不能删除成功。我就终止这个操作了。

2.问题

但是再次执行删除操作,但是是根据分区执行的时候,遇到的问题是:刚开始删除特别快,但是越删越慢。执行过程如下:

mysql> delete from fact_sales_temp where process_id = 181017201954166180 and pay_feed_back_date_Key = 20180523; Query OK, 15640 rows affected (1.09 sec) mysql> delete from fact_sales_temp where process_id = 181017201954166180 and pay_feed_back_date_Key = 20180524; Query OK, 15534 rows affected (1.08 sec) mysql> delete from fact_sales_temp where process_id = 181017201954166180 and pay_feed_back_date_Key = 20180525; Query OK, 18189 rows affected (1.90 sec) mysql> delete from fact_sales_temp where process_id = 181017201954166180 and pay_feed_back_date_Key = 20180526; Query OK, 21520 rows affected (1.42 sec) mysql> delete from fact_sales_temp where process_id = 181017201954166180 and pay_feed_back_date_Key = 20180527; Query OK, 18468 rows affected (1.47 sec) mysql> delete from fact_sales_temp where process_id = 181017201954166180 and pay_feed_back_date_Key = 20180528; Query OK, 15444 rows affected (6.64 sec) mysql> delete from fact_sales_temp where process_id = 181017201954166180 and pay_feed_back_date_Key = 20180529; Query OK, 16111 rows affected (58.20 sec) mysql> delete from fact_sales_temp where process_id = 181017201954166180 and pay_feed_back_date_Key = 20180530; Query OK, 16402 rows affected (59.01 sec) mysql> delete from fact_sales_temp where process_id = 181017201954166180 and pay_feed_back_date_Key = 20180531; Query OK, 17129 rows affected (1 min 5.24 sec)

其中的pay_feed_back_date_Key字段是fact_sales_temp这个表的分区字段。

3.原因

为什么都是执行删除相同分区的操作,而且数据量的分布大致相同,但是得到的结果却是不一样的呢? 我的个人猜测如下: 虽然直接使用delete操作没有执行成功,但是数据库已经将部分满足条件的数据拿到了缓冲区里。导致删除这部分的数据的时候就执行的非常快。相反,后面的一些数据没有加入到缓冲区中,导致执行删除操作的时候就非常慢了。

4.解决办法 根据分区删除数据根据索引删除数据


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有