MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

Posted 阿尔卑斯Love

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL部分从库上面因为大量的临时表tmp_table造成慢查询相关的知识,希望对你有一定的参考价值。

背景描述

# Time: 2019-01-24T00:08:14.705724+08:00
# User@Host: **[**] @  [**]  Id: **
# Schema: sentrymeta  Last_errno: 0  Killed: 0
# Query_time: 0.315758  Lock_time: 0.001693  Rows_sent: 9664  Rows_examined: 36413  Rows_affected: 0
# Bytes_sent: 1616970  Tmp_tables: 1  Tmp_disk_tables: 1  Tmp_table_sizes: 16384
# QC_Hit: No  Full_scan: No  Full_join: No  Tmp_table: Yes  Tmp_table_on_disk: Yes
# Filesort: No  Filesort_on_disk: No  Merge_passes: 0
#   InnoDB_IO_r_ops: 0  InnoDB_IO_r_bytes: 0  InnoDB_IO_r_wait: 0.000000
#   InnoDB_rec_lock_wait: 0.000000  InnoDB_queue_wait: 0.000000
#   InnoDB_pages_distinct: 1085
             total       used       free     shared    buffers     cached
Mem:           125         38         87          0          0         19
-/+ buffers/cache:         18        107
Swap:           31          0         31
root@(none)04:33:02>select version();
+---------------+
| version()     |
+---------------+
| 5.7.19-17-log |
+---------------+
1 row in set (0.00 sec)

root@(none)04:33:07>show variables like \'%table_size%\';
+---------------------+-----------+
| Variable_name       | Value     |
+---------------------+-----------+
| max_heap_table_size | 134217728 |
| tmp_table_size      | 16777216  |
+---------------------+-----------+
2 rows in set (0.00 sec)

问题分析

Q1:为什么会产生临时表?

这个不多说,SQL写的惹不起,反正就是半个小时看不懂的那种,就是一眼就知道一定会产生临时表的

以上是关于MySQL部分从库上面因为大量的临时表tmp_table造成慢查询的主要内容,如果未能解决你的问题,请参考以下文章

mysql 创建大量磁盘临时表

mysql主从不同步,部分表中的数据没有在从库中同步

MySQL新增从库

mysql性能优化2

20180507MySQL主从在线修改从库binlog格式从STATEMENT更改成ROW格式

mysql主从复制,要主库和从库表结构一致才能复制吗