为什么mysql导入表空间这么慢,插入/更新sql压力?

时间:2017-02-08 07:48:05

标签: mysql

我的mysql中有模式A和B,当我对模式A进行压力测试时,其中包含大量并发批量插入和更新sql操作,并从文件中导入许多表空间,这些文件是由模式BI上的xtrabackup导出的,导致导入操作非常慢,耗费大量时间(超过一小时)。如果我不对模式A进行压力测试,导入操作几乎花费20秒。

show processlist: 856 guest 10.142.90.17:51671 pinc_0002 Query 733 Table lock alter table bill import tablespace 0 857 guest 10.142.90.17:51700 pinc_0002 Query 733 Table lock alter table company import tablespace 0 858 guest 10.142.90.17:51731 pinc_0002 Query 733 Table lock alter table car_new import tablespace 0 859 guest 10.142.90.17:51758 pinc_0002 Query 733 Table lock alter table dialing_his import tablespace 0 860 guest 10.142.90.17:51799 pinc_0002 Query 733 Table lock alter table car import tablespace 0 861 guest 10.142.90.17:51846 pinc_0002 Query 732 Table lock alter table employee_his_new import tablespace 0 862 guest 10.142.90.17:51869 pinc_0002 Query 732 Table lock alter table book import tablespace 0 863 guest 10.142.90.17:51914 pinc_0002 Query 732 Table lock alter table goods import tablespace 0 864 guest 10.142.90.17:51975 pinc_0002 Query 732 Table lock alter table order_details import tablespace 0

result of SHOW ENGINE INNODB STATUS

select * from information_schema.INNODB_LOCKS: 115155367:9417:4:2 115155367 X RECORD `pinc_0003`.`testcolumn` GEN_CLUST_INDEX 9417 4 2 0x00001D331DDF 115153055:9417:4:2 115153055 X RECORD `pinc_0003`.`testcolumn` GEN_CLUST_INDEX 9417 4 2 0x00001D331DDF 115150974:9417:4:2 115150974 X RECORD `pinc_0003`.`testcolumn` GEN_CLUST_INDEX 9417 4 2 0x00001D331DDF 115148337:9417:4:2 115148337 X RECORD `pinc_0003`.`testcolumn` GEN_CLUST_INDEX 9417 4 2 0x00001D331DDF

result of select * from information_schema.INNODB_TRX

top: PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
54996 apps 20 0 111g 71g 8664 S 1794.7 14.2 2254:20 mysqld
iostat -dxm: ``` [apps @ cs1n3~] $ iostat -dxm 2 Linux 2.6.32-358.el6.x86_64(cs1n3)02/08/2017 _x86_64_(64 CPU)

设备:rrqm / s wrqm / s r / s w / s rMB / s wMB / s avgrq-sz avgqu-sz await svctm%util sda 0.04 485.19 8.12 76.89 0.19 2.43 63.20 0.19 2.25 0.16 1.38 sdb 0.00 8.14 0.03 2.44 0.00 0.04 35.10 0.01 4.51 0.14 0.04

设备:rrqm / s wrqm / s r / s w / s rMB / s wMB / s avgrq-sz avgqu-sz await svctm%util sda 0.00 841.50 0.00 7003.50 0.00 63.91 18.69 3.13 0.45 0.13 94.20 sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ```

``` iostat -dxm Linux 2.6.32-358.el6.x86_64(cs1n3)02/08/2017 _x86_64_(64 CPU) 设备:rrqm / s wrqm / s r / s w / s rMB / s wMB / s avgrq-sz avgqu-sz await svctm%util sda 0.04 485.19 8.12 76.89 0.19 2.43 63.20 0.19 2.25 0.16 1.38 sdb 0.00 8.14 0.03 2.44 0.00 0.04 35.10 0.01 4.51 0.14 0.04

设备:rrqm / s wrqm / s r / s w / s rMB / s wMB / s avgrq-sz avgqu-sz await svctm%util sda 0.00 841.50 0.00 7003.50 0.00 63.91 18.69 3.13 0.45 0.13 94.20 sdb 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 ```

1 个答案:

答案 0 :(得分:0)

也许答案在你的表架构中。如果您的表中有PRIMARY_KEY,则数据库具有B-Tree结构,但如果您的表没有PRIMARY_KEY,则数据库具有table结构。因此,您的数据库中可能有table结构,因此操作添加/更新的成本超过B-Tree结构。