drop大表对数据库的影响

表24G,buffer pool1.5G

-rw-r----- 1 mysql mysql          65 Mar 13 16:38 db.opt
[root@hecs-161929 test]# du -sh *
40K     bigtable.frm
24G     bigtable.ibd
40K     cm_ccf_taskins_ipf.frm
2.5G    cm_ccf_taskins_ipf.ibd
4.0K    db.opt

buffer pool使用情况

(root@localhost) [test]  select CONCAT(FORMAT(A.num *100 /B.num,2),"%") BufferPoolFullPct from (select variable_value num from performance_schema.global_status where variable_name='Innodb_buffer_pool_pages_data') A ,(select variable_value num from performance_schema.global_status where variable_name ='Innodb_buffer_pool_pages_total')B;
+-------------------+
| BufferPoolFullPct |
+-------------------+
| 99.96%            |
+-------------------+
1 row in set (0.00 sec)

开始drop

(root@localhost) [test] drop table bigtable;
Query OK, 0 rows affected (0.48 sec)

TPS/QPS 降为0

[root@hecs-161929 test]# sysbench  oltp_read_write --mysql-host=116.63.145.178 --mysql-port=3306 --mysql-user=cjr --mysql-password=cjr --mysql-db=sbtest --tables=5 --table-size=10000  --threads=64 --time=60 --report-interval=10 run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 64
Report intermediate results every 10 second(s)
Initializing random number generator from current time


Initializing worker threads...

Threads started!

[ 10s ] thds: 64 tps: 3.10 qps: 143.27 (r/w/o: 117.88/12.80/12.60) lat (ms,95%): 7086.63 err/s: 0.00 reconn/s: 0.00
[ 20s ] thds: 64 tps: 3.50 qps: 71.00 (r/w/o: 49.80/14.30/6.90) lat (ms,95%): 11115.87 err/s: 0.00 reconn/s: 0.00
[ 30s ] thds: 64 tps: 3.40 qps: 69.60 (r/w/o: 49.00/13.70/6.90) lat (ms,95%): 15934.78 err/s: 0.00 reconn/s: 0.00
[ 40s ] thds: 64 tps: 3.50 qps: 69.00 (r/w/o: 48.50/13.50/7.00) lat (ms,95%): 6026.41 err/s: 0.00 reconn/s: 0.00
[ 50s ] thds: 64 tps: 3.50 qps: 67.20 (r/w/o: 45.80/14.40/7.00) lat (ms,95%): 14827.42 err/s: 0.00 reconn/s: 0.00
[ 60s ] thds: 64 tps: 2.80 qps: 57.90 (r/w/o: 40.80/11.50/5.60) lat (ms,95%): 26382.13 err/s: 0.00 reconn/s: 0.00
[ 70s ] thds: 64 tps: 2.40 qps: 18.80 (r/w/o: 7.80/8.60/2.40) lat (ms,95%): 67291.00 err/s: 0.00 reconn/s: 0.00
[ 80s ] thds: 64 tps: 0.10 qps: 0.90 (r/w/o: 0.40/0.40/0.10) lat (ms,95%): 63752.41 err/s: 0.00 reconn/s: 0.00
[ 90s ] thds: 63 tps: 0.50 qps: 3.40 (r/w/o: 0.90/2.00/0.50) lat (ms,95%): 85039.12 err/s: 0.00 reconn/s: 0.00
[ 100s ] thds: 63 tps: 0.50 qps: 3.40 (r/w/o: 0.90/2.00/0.50) lat (ms,95%): 96462.77 err/s: 0.00 reconn/s: 0.00
[ 110s ] thds: 15 tps: 2.70 qps: 18.30 (r/w/o: 4.80/10.80/2.70) lat (ms,95%): 100000.00 err/s: 0.00 reconn/s: 0.00
[ 120s ] thds: 4 tps: 0.10 qps: 0.50 (r/w/o: 0.00/0.40/0.10) lat (ms,95%): 100000.00 err/s: 0.00 reconn/s: 0.00
[ 130s ] thds: 4 tps: 0.00 qps: 0.00 (r/w/o: 0.00/0.00/0.00) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00
[ 140s ] thds: 4 tps: 0.00 qps: 0.00 (r/w/o: 0.00/0.00/0.00) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00
[ 150s ] thds: 4 tps: 0.00 qps: 0.00 (r/w/o: 0.00/0.00/0.00) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00
[ 160s ] thds: 4 tps: 0.00 qps: 0.00 (r/w/o: 0.00/0.00/0.00) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00
[ 170s ] thds: 4 tps: 0.00 qps: 0.00 (r/w/o: 0.00/0.00/0.00) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00
[ 180s ] thds: 4 tps: 0.00 qps: 0.00 (r/w/o: 0.00/0.00/0.00) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00
[ 190s ] thds: 4 tps: 0.00 qps: 0.00 (r/w/o: 0.00/0.00/0.00) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00
[ 200s ] thds: 4 tps: 0.00 qps: 0.00 (r/w/o: 0.00/0.00/0.00) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00
[ 210s ] thds: 4 tps: 0.00 qps: 0.00 (r/w/o: 0.00/0.00/0.00) lat (ms,95%): 0.00 err/s: 0.00 reconn/s: 0.00
SQL statistics:
    queries performed:
        read:                            3668
        write:                           1048
        other:                           524
        total:                           5240
    transactions:                        262    (1.20 per sec.)
    queries:                             5240   (23.92 per sec.)
    ignored errors:                      0      (0.00 per sec.)
    reconnects:                          0      (0.00 per sec.)

General statistics:
    total time:                          219.0740s
    total number of events:              262

Latency (ms):
         min:                                   27.98
         avg:                                21588.57
         max:                               219073.01
         95th percentile:                   100000.00
         sum:                              5656204.56

Threads fairness:
    events (avg/stddev):           4.0938/6.46
    execution time (avg/stddev):   88.3782/25.09

[root@hecs-161929 test]# 

关闭AHI再次测试
drop 表同时开始压测

[root@hecs-161929 ~]# sysbench  oltp_read_write --mysql-host=116.63.145.178 --mysql-port=3306 --mysql-user=cjr --mysql-password=cjr --mysql-db=sbtest --tables=10 --table-size=1000  --threads=5 --time=120 --report-interval=5 run
sysbench 1.0.20 (using bundled LuaJIT 2.1.0-beta2)

Running the test with following options:
Number of threads: 5
Report intermediate results every 5 second(s)
Initializing random number generator from current time


Initializing worker threads...

Threads started!

[ 5s ] thds: 5 tps: 5.80 qps: 127.15 (r/w/o: 90.77/23.79/12.60) lat (ms,95%): 1869.60 err/s: 0.00 reconn/s: 0.00
[ 10s ] thds: 5 tps: 3.20 qps: 65.81 (r/w/o: 46.60/12.80/6.40) lat (ms,95%): 2320.55 err/s: 0.00 reconn/s: 0.00
[ 15s ] thds: 5 tps: 3.80 qps: 73.20 (r/w/o: 50.20/15.40/7.60) lat (ms,95%): 2045.74 err/s: 0.00 reconn/s: 0.00
[ 20s ] thds: 5 tps: 3.20 qps: 63.80 (r/w/o: 45.40/12.00/6.40) lat (ms,95%): 2238.47 err/s: 0.00 reconn/s: 0.00
[ 25s ] thds: 5 tps: 2.80 qps: 59.60 (r/w/o: 42.60/11.40/5.60) lat (ms,95%): 1836.24 err/s: 0.00 reconn/s: 0.00
[ 30s ] thds: 5 tps: 3.20 qps: 60.80 (r/w/o: 41.80/12.60/6.40) lat (ms,95%): 2449.36 err/s: 0.00 reconn/s: 0.00
[ 35s ] thds: 5 tps: 2.80 qps: 59.60 (r/w/o: 42.60/11.40/5.60) lat (ms,95%): 2405.65 err/s: 0.00 reconn/s: 0.00
[ 40s ] thds: 5 tps: 2.60 qps: 52.80 (r/w/o: 36.60/11.00/5.20) lat (ms,95%): 2045.74 err/s: 0.00 reconn/s: 0.00
[ 45s ] thds: 5 tps: 3.20 qps: 62.00 (r/w/o: 43.40/12.20/6.40) lat (ms,95%): 1836.24 err/s: 0.00 reconn/s: 0.00
[ 50s ] thds: 5 tps: 3.20 qps: 62.80 (r/w/o: 43.80/12.60/6.40) lat (ms,95%): 1427.08 err/s: 0.00 reconn/s: 0.00
[ 55s ] thds: 5 tps: 3.00 qps: 59.20 (r/w/o: 41.20/12.00/6.00) lat (ms,95%): 1836.24 err/s: 0.00 reconn/s: 0.00
[ 60s ] thds: 5 tps: 2.80 qps: 57.00 (r/w/o: 40.20/11.20/5.60) lat (ms,95%): 1376.60 err/s: 0.00 reconn/s: 0.00
[ 65s ] thds: 5 tps: 3.60 qps: 69.40 (r/w/o: 48.00/14.40/7.00) lat (ms,95%): 1648.20 err/s: 0.00 reconn/s: 0.00
[ 70s ] thds: 5 tps: 2.40 qps: 53.00 (r/w/o: 37.60/10.40/5.00) lat (ms,95%): 2045.74 err/s: 0.00 reconn/s: 0.00
[ 75s ] thds: 5 tps: 3.00 qps: 58.60 (r/w/o: 41.40/11.20/6.00) lat (ms,95%): 1648.20 err/s: 0.00 reconn/s: 0.00
[ 80s ] thds: 5 tps: 3.00 qps: 58.40 (r/w/o: 40.40/12.00/6.00) lat (ms,95%): 1235.62 err/s: 0.00 reconn/s: 0.00
[ 85s ] thds: 5 tps: 3.20 qps: 65.00 (r/w/o: 45.80/12.80/6.40) lat (ms,95%): 1258.08 err/s: 0.00 reconn/s: 0.00
[ 90s ] thds: 5 tps: 3.00 qps: 59.80 (r/w/o: 41.80/12.00/6.00) lat (ms,95%): 1427.08 err/s: 0.00 reconn/s: 0.00
[ 95s ] thds: 5 tps: 3.20 qps: 64.20 (r/w/o: 45.00/12.80/6.40) lat (ms,95%): 1836.24 err/s: 0.00 reconn/s: 0.00
[ 100s ] thds: 5 tps: 3.00 qps: 59.40 (r/w/o: 41.40/12.00/6.00) lat (ms,95%): 2045.74 err/s: 0.00 reconn/s: 0.00
[ 105s ] thds: 5 tps: 2.80 qps: 57.40 (r/w/o: 40.60/11.20/5.60) lat (ms,95%): 1258.08 err/s: 0.00 reconn/s: 0.00
[ 110s ] thds: 5 tps: 3.20 qps: 63.60 (r/w/o: 44.40/12.80/6.40) lat (ms,95%): 1648.20 err/s: 0.00 reconn/s: 0.00
[ 115s ] thds: 5 tps: 2.80 qps: 56.20 (r/w/o: 39.40/11.20/5.60) lat (ms,95%): 2449.36 err/s: 0.00 reconn/s: 0.00
[ 120s ] thds: 5 tps: 3.00 qps: 57.80 (r/w/o: 39.40/12.40/6.00) lat (ms,95%): 1561.52 err/s: 0.00 reconn/s: 0.00

总结:
drop table 的过程
(1)遍历lru,删除该表的脏页
(2)清理AHI的内容
(3)文件系统的删除、
大的buffer pool会遍历时间过长,通过hash运算找AHI对应的位置并删除,这个时间也是比较长的,此阶段持有内部latch锁不释放,影响其他查询。
在mysql8.0.23修复版本中,对于脏页采用惰性删除方式,在关闭AHI的时候,是瞬间完成的,当开启AHI的时候比历史版本还要长,与其他版本的区别是不影响业务。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值