MySQL临时表性能翻倍秘籍:tmp_table_size从16M调到32M的实战效果对比

mysql 参数调优(10)之 tmp_table_size 优化临时表 由于MySQL慢查询日志里没有使用临时表的信息,这就给我们诊断性能问题带来了一些不便,第三方的版本如Percona Server,在慢查询里可以有更详细的信息,将会记录临时表使用的情况,从而有助于我们诊断和调优。查看临时表统计信息,Created_tmp_disk_tables 为0,Created_tmp_tables 为1表示上诉sql执行后生产了一张内存里的临时表。tmp_table_size如果过小,存不下了就会存到磁盘上。将tmp_table_size 调从16M调整为16K。 阅读详情

MySQL临时表性能翻倍秘籍:tmp_table_size从16M调到32M的实战效果对比

你是否经历过这样的场景:一个看似简单的报表查询,在测试环境跑得飞快,一到生产环境就慢如蜗牛,页面加载转圈圈,用户抱怨连连。排查下来,SQL语句本身似乎没问题,索引也建了,但EXPLAIN结果里那个刺眼的Using temporary和Using filesort却揭示了真相——临时表在拖后腿。对于经常处理大数据量分组聚合(GROUP BY)、排序(ORDER BY)或复杂UNION的开发者或DBA来说,临时表是一个绕不开的话题。它像数据库内部的一个“临时工作区”,用得好能加速处理,配置不当则瞬间成为性能瓶颈,尤其是当这个工作区被迫从高速内存转移到缓慢的磁盘时。

今天,我们不谈空洞的理论,直接进入实战。我将通过一组精心设计的对比实验,带你亲眼见证调整tmp_table_size这个关键参数所带来的戏剧性性能变化。从默认的16M,到故意调小的16K,再到推荐的32M,我们将用真实的查询耗时和监控数据说话,让你彻底理解临时表的内存与磁盘之争,并掌握一套行之有效的调优方法。无论你是正在为线上慢查询焦头烂额的工程师,还是希望提前规避性能风险的架构师,这篇文章都将提供直接的、可操作的 insights。

1. 理解临时表:MySQL的“内存工作台”

在深入调优之前,我们得先搞清楚临时表到底是什么,以及MySQL在什么情况下会使用它。你可以把临时表想象成MySQL执行复杂查询时,在内存中临时开辟的一块“草稿纸”或“工作台”。

当MySQL无法直接通过索引完成一个查询时,它可能需要创建一个中间结果集来辅助计算。最常见的场景包括:

  • 含有 GROUP BY 子句的查询,特别是分组字段与排序字段不一致时。
  • 含有 ORDER BY 子句的查询,且无法利用现有索引进行排序。
  • 执行 UNION 操作(UNION ALL除外,它通常不进行去重排序)。
  • 某些子查询或派生表(Derived Table) 的处理。

MySQL会优先尝试在内存中创建这种临时表,使用的是一种名为“Memory”的存储引擎。内存操作的速度极快,但空间有限。这里就引出了我们今天的主角——tmp_table_size参数。它定义了单个用户线程在内存中创建的临时表所能使用的最大容量。如果查询产生的中间结果集大小超过了这个阈值,MySQL就不得不将临时表“溢出”到磁盘上,使用MyISAM或InnoDB引擎(取决于版本和配置)来存储。磁盘I/O的速度与内存操作相比,有着数量级的差距,这正是性能急剧下降的根源。

我们可以通过一个简单的SQL来观察临时表的使用情况:

SHOW SESSION STATUS LIKE 'Created_tmp%tables';

这条命令会返回两个关键指标:

  • Created_tmp_tables: 本次会话创建的内存临时表总数。
  • Created_tmp_disk_tables: 本次会话创建的磁盘临时表总数。

一个健康的系统,应该让绝大多数临时表都创建在内存中,Created_tmp_disk_tables的值需要被密切关注。接下来,我们就用实验来量化这种影响。

2. 实验设计:构建一个可量化的性能测试场景

为了获得有说服力的数据,我设计了一个模拟真实业务压力的测试。我使用了一个包含约137万行记录的订单表(orders),表结构包含订单日期、店员编号、总金额等典型字段。测试的查询是一个典型的业务报表查询:按月份和店员统计订单数量、总金额和平均金额。

这个查询几乎完美命中了临时表的高频使用场景:

  1. 使用了 DATE_FORMAT 函数对日期进行格式化,这通常会导致索引失效。
  2. 对格式化后的日期和店员编号进行 GROUP BY。
  3. 包含了 COUNT、SUM、AVG 等多个聚合函数。

在测试前,我确保数据库缓冲区已被预热,并每次测试后使用 FLUSH STATUS 重置会话状态,以获取干净的监控数据。实验将对比三个不同的 tmp_table_size 设置:

参数设置预期行为关注指标
场景A:默认值 16M中间结果集若小于16M,则使用内存临时表。查询耗时、Created_tmp_disk_tables
场景B:极限小值 16K强制让临时表溢出到磁盘。查询耗时的增长幅度、磁盘I/O影响。
场景C:调优值 32M为更大的中间结果集提供内存空间。查询耗时是否优化、内存使用是否合理。

注意:在生产环境调整全局参数前,务必先在测试环境或通过 SET SESSION 在单个会话中进行验证,避免对整体服务造成影响。

3. 性能对比实验:从16M到16K再到32M的震撼数据

实验在配置一致的测试服务器上进行。我们直接看结果。

场景A:tmp_table_size = 16M (默认值) 首先,我们在默认配置下执行统计查询。

-- 设置会话参数为16M
SET SESSION tmp_table_size = 16*1024*1024;

-- 执行查询
SELECT date_format(o_orderDATE, '%Y-%m'), o_clerk,
       count(1), sum(o_totalprice), avg(o_totalprice)
FROM orders
GROUP BY date_format(o_orderDATE, '%Y-%m'), o_clerk;

查询返回了近8万行汇总数据。耗时结果如下:

79710 rows in set (7.34 sec)

执行后,立即检查临时表状态:

SHOW SESSION STATUS LIKE 'Created_tmp%tables';

结果:

+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| Created_tmp_disk_tables | 0     | -- 磁盘临时表数为0
| Created_tmp_tables      | 1     | -- 内存临时表数为1
+-------------------------+-------+

结论:在16M的设置下,本次查询的中间结果完全容纳在了内存临时表中,耗时约7.34秒。这是一个基准性能。


场景B:tmp_table_size = 16K (人为制造瓶颈) 现在,我们故意将参数调得非常小,模拟配置不合理或内存极度紧张的情况。

SET SESSION tmp_table_size = 16*1024; -- 仅16KB

-- 再次执行完全相同的查询
SELECT ... (同上) ...

这次的耗时出现了惊人的变化:

79710 rows in set (18.58 sec)

查询时间从7.34秒暴涨至18.58秒,性能下降了约2.5倍! 我们再次查看状态:

+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| Created_tmp_disk_tables | 1     | -- 关键!创建了1个磁盘临时表
| Created_tmp_tables      | 1     |
+-------------------------+-------+

状态清晰地显示,Created_tmp_disk_tables 从0变成了1。这意味着由于16KB的内存空间远远不够,MySQL不得不将临时表写入磁盘。磁盘的读写速度(尤其是机械硬盘)与内存相比慢了几个数量级,大量的时间被消耗在了I/O等待上,从而导致查询性能急剧劣化。

这个实验直观地证明了:不恰当的 tmp_table_size 设置,通过触发磁盘临时表,可以轻易地将查询性能拖垮。


场景C:tmp_table_size = 32M (优化尝试) 基于场景A的基准,我们尝试将内存空间扩大一倍,看看是否有进一步的提升。

SET SESSION tmp_table_size = 32*1024*1024;

-- 执行查询
SELECT ... (同上) ...

耗时结果:

79710 rows in set (6.91 sec)

查询时间从7.34秒降低到了6.91秒,提升了约6%。 状态检查依然显示使用的是内存临时表。

+-------------------------+-------+
| Variable_name           | Value |
+-------------------------+-------+
| Created_tmp_disk_tables | 0     |
| Created_tmp_tables      | 1     |
+-------------------------+-------+

提升幅度看似没有从16K到16M那么夸张,但这恰恰说明了优化已触及当前查询的“天花板”。对于这个特定的查询,其临时结果集大小可能在16M到32M之间,16M时可能刚好够用但有些局促(可能涉及部分内存管理开销),32M则提供了更充裕的空间,使得内存操作效率更高。对于更复杂、结果集更大的查询,这个提升比例可能会更大。

4. 超越参数调优:系统化的临时表性能治理策略

调整 tmp_table_size 是一个有效的“急救”手段,但绝非一劳永逸的银弹。作为一名资深的DBA,我习惯从更系统的视角来治理临时表性能问题。单一参数调整是战术层面,而系统化治理是战略层面。

4.1 监控与诊断:建立性能基线 首先,你需要知道你的数据库当前面临多大的临时表压力。不要只看单次查询,要关注全局。

-- 查看自数据库启动以来的全局临时表使用情况
SHOW GLOBAL STATUS LIKE 'Created_tmp%tables';

在我的一个生产库示例中,曾看到过这样的数据:

+-------------------------+---------+
| Variable_name           | Value   |
+-------------------------+---------+
| Created_tmp_disk_tables | 12587   | -- 磁盘临时表总数
| Created_tmp_tables      | 3856920 | -- 所有临时表总数
+-------------------------+---------+

计算磁盘临时表占比:12587 / 3856920 ≈ 0.33%。虽然比例不高,但绝对数量依然可观,需要进一步分析这些磁盘临时表是由哪些慢查询产生的。

4.2 优化查询设计:从源头减少临时表 很多时候,优化SQL语句本身比调整参数更有效。以下是一些实战技巧:

  • 为 GROUP BY、ORDER BY 字段添加索引:这是最根本的方法。如果GROUP BY date, clerk,考虑创建(date, clerk)的复合索引。但注意,如果date字段被DATE_FORMAT函数包裹,索引会失效。
  • 避免在WHERE和ORDER/GROUP BY子句中对字段进行运算或函数操作:如非必要,尽量存储格式化后的冗余列,或调整查询逻辑。
  • 审视查询必要性:有时,应用程序层面的分页或缓存可以避免数据库执行全量分组排序。

4.3 理解MySQL 8.0的改进 如果你在使用MySQL 8.0,那么你在临时表方面拥有了更好的武器。8.0引入了新的“TempTable”存储引擎作为内存临时表的默认引擎,它比旧的“MEMORY”引擎更高效,并且支持存储BLOB/TEXT等大对象类型。此外,磁盘临时表的默认引擎也变成了InnoDB,事务性更好。

相关参数也发生了变化:

  • internal_tmp_mem_storage_engine: 默认为TempTable。
  • temptable_max_ram: 定义TempTable引擎能使用的最大内存量,超过后也会溢出到磁盘(但格式是InnoDB)。

4.4 综合配置建议与风险控制 基于实验和经验,我给出以下配置思路:

  1. 初始设置:对于大多数OLTP(在线事务处理)系统,将 tmp_table_size 和 max_heap_table_size(两者需保持一致)设置为 64M - 256M 是一个合理的起点。32M对于许多现代应用来说可能偏小。
  2. 监控调整:通过定期监控 Created_tmp_disk_tables 的增长速度及其在总临时表中的占比。如果占比持续高于1%-5%,并且慢查询日志中确实发现了相关的慢查询,可以考虑适当调大tmp_table_size。
  3. 内存总预算:切记,这个参数是每个线程独享的。如果有1000个并发连接都在创建大型临时表,理论上可能消耗 1000 * tmp_table_size 的内存。你必须确保 tmp_table_size 的设置在你的服务器总物理内存承受范围内。一个粗略的估算方法是:
    最大潜在内存消耗 = max_connections * tmp_table_size
    此值应远小于(例如小于50%)服务器的可用物理内存。
    
  4. 使用慢查询日志增强版:像Percona Server或MariaDB这样的分支,其慢查询日志可以记录诸如Tmp_tables、Tmp_disk_tables、Tmp_table_sizes等详细信息,这对于精准定位问题查询是无价之宝。

在我处理过的一个电商系统案例中,凌晨的报表任务总是超时。分析慢日志发现,一个复杂的多表关联分组查询频繁创建超过100M的磁盘临时表。我们将该报表拆分成多个步骤,利用物化视图(Materialized View)在业务低峰期预计算中间结果,并将tmp_table_size针对该报表专用的数据库连接池调大到512M,最终将任务耗时从小时级降低到分钟级。

调优不是盲目增大参数,而是在理解原理的基础上,结合监控数据,做出平衡性能与资源的最优决策。从今天起,当你再看到Using temporary时,希望你能自信地打开监控,分析查询,并做出正确的调整。

MySQL临时表性能翻倍秘籍:tmp_table_size从16M调到32M的实战效果 本文深入探讨了MySQL临时表性能优化的关键参数tmp_table_size。通过实战测试对比,详细分析了将其从默认16M调整至32M后,如何显著减少磁盘临时表使用,使特定查询性能提升近一倍。文章还提供了参数调优的监控方法、配置策略及结合查询优化的最佳实践,帮助数据库管理员有效解决因临时表溢出导致的性能瓶颈。 阅读详情

相关推荐

数据库选型实战指南:从业务场景、数据模型到演进成本的四维决策法

数据库选型本质是业务需求的技术映射,而非技术参数的简单比拼。理解数据的一致性模型(如ACID与最终一致)和访问模式(如时序查询、关系关联、向量相似检索)是决策起点;其技术价值在于降低长期演进成本、保障核心业务逻辑不崩溃;典型应用场景涵盖高并发注册、IoT时序监控、电商复杂筛选、社交图谱关系、金融强一致流水及AI向量检索——这些正是当前分布式系统与云原生架构中最常触发选型重构的关键节点。本文聚焦**业务场景**与**数据模型**两大热词,提供可落地的四维评估框架,直击选型失焦、性能误判与运维失控等工程痛点。

342

MySQL 配置参数 tmp_table_size

tmp_table_size 临时表的内存缓存大小 临时表是指sql执行时生成临时数据表 # tmp_table_size 默认值 16777216 最小值 1 最大值 18446744073709551615 // 单位字节 默认值也就是16M多 查看 tmp_table_size show global variables like ‘tmp_table_size...

问道至简 1万+

参数的本质:系统调控的神经突触与三重身份

参数是数字系统中连接用户意图与底层行为的核心调控机制,它既非简单变量也非静态配置,而是承载指令性、契约性和边界性三重角色的动态信号。从Linux内核的vm.swappiness到AI训练的learning_rate,参数通过多层映射影响内存调度、网络超时、模型收敛等关键路径。其技术价值在于实现细粒度控制、跨组件协同与资源安全约束;典型应用场景涵盖系统运维调优、嵌入式设备配置、云原生服务治理及大模型微调。理解参数需穿透表层数值,关注其作用对象的数据精度、单位量纲、执行环境及失效模式——这正是本文聚焦的‘可调试

cuiyingchan0663的博客 410

Mysql5.7 tmp_table_size 配置

tmp_table_size 表示临时表内存大小的配置 我们什么时候会用到临时表了?可以通过explain sql语句如果有 Using temporary 则会发现有用到临时表,当我们的临时表内存大小不够的时候,就会使用硬盘,所以这样效率就会变的很低。 查看 实例测试: ① 我们把tmp_table_size改成1M时,测试一条group by的sql. set tmp_table_size = 1 * 1024 * 1024; ##将临时表的内存大小设置为1M ② 我们执.

u010648194的博客 4505

【信息科学与工程学】计算机科学与自动化 第二百三十三篇 凤凰架构01

编号类型领域系统软件/硬件或系统集成方案及系统架构模块子模块函数名称/算法名称算法的数学分析及计算机体系架构及数据结构与算法详细设计及参数列表及数值范围设计关联知识1共识算法分布式基石状态机复制架构:Proposer/Acceptor/Learner 多节点角色模型,基于操作转移(Operation Transfer)分布式共识PaxosPaxos 协议(Prepare/Promise/Accept/Accepted 两阶段)数学基础:多数派(Quorum)投票,基于鸽巢原理保证 W+R>N 时读写集合必有

weixin_49199313的博客 265

mysql tmp_table_size优化之设置多大合适

主要介绍了mysql tmp_table_size优化问题,很多朋友都会问tmp_table_size设置多大合适,其实既然你都搜索到这篇文章了,一般大于64M比较好,当然你也可以可以根据自己的机器内容配置增加,一般64位的系统能充分利用大内存

Mysql tmp_table_size参数

官网说明:https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html内存中内部临时表的最大大小。该变量不适用于用户创建的MEMORY表。实际的限制是tmp_table_size和max_heap_table_size中较小的一个。当内存中的临时表超过限制时,MySQL自动将其转换为磁盘上的临时表。inte...

hbhe0316的专栏 2326

Obsidian的Git插件设置配置全流程 -- 简单的电脑端多平台同步方案及常见问题

Git同步obsidian的保姆级教程和常见问题

weixin_44370439的博客 1万+

UNION vs UNION ALL:SQL性能分水岭与生产决策指南

UNION和UNION ALL是关系型数据库中最基础却最易误用的集合操作,其本质差异远超‘是否去重’的语法表象——前者触发排序、临时表、哈希聚合等高开销物理操作,后者实现零拷贝流式拼接。理解这一区别,需从查询执行计划、内存管理、IO路径及并发影响四个维度切入。在千万级数据场景下,错误选用UNION可能导致响应时间激增20倍、磁盘IO暴涨数GB,并引发连接池雪崩与统计信息污染。真实业务中,90%的UNION可被UNION ALL替代,前提是准确识别数据源互斥性(如分库/分区/状态机场景)。本文聚焦MySQL、

weixin_33892359的博客 314

第3章 zynq MII转GMII的配置和EMIO UART0的配置

本文介绍了在Vivado工程中实现MII转GMII接口适配的过程,同时配置EMIO UART0接口。主要内容包括:修改PS IP核添加UART0接口,使用concat IP核进行信号整合,调整GMII信号引脚连接,添加约束文件定义引脚映射,并最终生成bit流文件。通过详细的操作截图和TCL约束代码,展示了从硬件配置到生成可编程文件的完整流程,为Zynq平台开发提供了实用参考。

qq_36517072的博客 903

Arm CCA架构:硬件级机密计算与安全隔离技术解析

机密计算(Confidential Computing)通过硬件级隔离技术构建可信执行环境(TEE),是当前云安全和数据隐私保护的核心方案。Armv9-A引入的CCA架构采用物理地址空间隔离和Granule保护表(GPT)机制,实现4KB颗粒度的内存访问控制。该技术通过标准化的RMI/RSI接口规范,为虚拟化环境和安全敏感应用提供硬件级保护,特别适用于金融交易、医疗数据处理等需要严格隔离的场景。相比传统TEE方案,Arm CCA在隔离等级和动态权限管理方面具有显著优势,其Realm World设计为机密计算

weixin_30905133的博客 566

Ubuntu下MySQL远程部署实战:性能解耦与生产调优

远程数据库本质是计算与存储资源的物理隔离,其核心原理在于通过网络通信解耦Web应用的CPU密集型任务与MySQL的IO密集型任务,从而规避单机部署下的磁盘I/O争抢、内存页竞争和内核调度冲突。该方案的技术价值体现在可独立扩缩容、精细化内核调优(如vm.swappiness=1)、直通NVMe硬件(innodb_flush_method=O_DIRECT)等底层控制力,广泛适用于WordPress、Laravel、ThinkPHP等PHP/Python Web应用的生产环境性能治理。本文聚焦Ubuntu 22

weixin_33904756的博客 362

人工智能训练师技能等级认定四级技能考核试卷-样题4

本文为人工智能训练师四级技能考核试卷,包含六个实操考核项目,总时长150分钟。考核内容涵盖:1)车牌数据集规范评估与格式处理;2)车牌数据集采集代码修改与数据处理;3)房价预测数据集加载、预处理与可视化分析;4)车牌标注数据集审核与修正;5)螺丝螺母检测数据集的平台创建与共享;6)螺丝螺母数据的去噪处理与标注优化。要求考生使用Python编程、数据处理平台和标注工具完成各项任务,重点考察数据加载、格式转换、缺失值处理、数据可视化、标注审核及平台操作等技能。所有操作需在配备Python3.7和深度学习平台的W

weixin_42221934的博客 349

Nacos+PostgreSQL生产级部署:Docker Compose实战指南

服务发现与配置中心是微服务架构的核心基础设施,Nacos作为主流开源实现,其生产就绪能力高度依赖可靠的后端存储。Derby仅适用于单机调试,MySQL在Nacos 2.2+版本中存在驱动兼容与字符集陷阱,而PostgreSQL凭借原生JSONB支持、行级锁、逻辑复制和时间点恢复(PITR)四大优势,成为高并发、强一致性场景下的事实标准。本文聚焦Docker Compose环境下Nacos与PostgreSQL的深度整合,覆盖网络隔离、连接池调优、JDBC参数适配、初始化脚本迁移及高频故障根因定位,助力开发者

axfcjwkbi259888707的博客 419

深度学习Halcon中GPU显存利用率高,但GPU、CPU利用率较低,导致模型训练速度很慢,通过设置硬件参数的解决方法

深度学习Halcon中GPU显存利用率高,但GPU、CPU利用率较低,导致模型训练速度很慢,通过设置硬件参数的解决方法 前言 在训练自己模型的时候,会遇到GPU显存利用率高,但GPU、CPU利用率较低,导致模型训练速度很慢的问题。这个问题一方面是由于硬件没有设置到最佳工作状态,另一方面是代码中参数没有设置好。最近在跑Halcon DL遇到这个问题,而Halcon不像开源的几个框架那样自由,代码封装的比较多。所以遇到这种问题,只能在参数最优的情况下,通过设置硬件参数来提升性能。 当然,在跑DL之前,无论什么框

ZiLiangQin的博客 9914

如何通过Davinci Configurator来新增一个BswM仲裁规则

详细介绍如何通过Davinci Configurator来新增一个BswM仲裁规则。

initiallizer的博客 771

MySQL8.0学习笔记

SQL基础语法及函数摘要 本文介绍了SQL四大语言类别及其常用语法: DDL(数据定义语言):包括数据库/表的创建、修改、删除等操作,如CREATE/DROP/ALTER语句 DML(数据操作语言):实现数据增删改,如INSERT/UPDATE/DELETE语句 DQL(数据查询语言):SELECT查询语句,支持条件查询、分组、排序、分页等功能 DCL(数据控制语言):管理用户权限,如GRANT/REVOKE语句 还介绍了常用函数: 字符串函数:CONCAT、LOWER/UPPER、LPAD/RPAD等 数

rehumantou的博客 807

SAP CPI 之使用国密算法实现SM系列算法加解密

System.out.println("SM2-私钥:" + privateKey);System.out.println("SM2-公钥:" + publicKey);System.out.println("SM2-密文:" + encrypts);System.out.println("SM2-明文:" + data2);新建groovy,通过import之后,调用jar包中的方法。在CP中导入jar包,选择Upload,选中导入的jar包。的密钥和向量值,不安全!的公钥和私钥,不安全!

u012830826的博客 1335

《PHP 5.x到8.x全量升级工程:兼容性评估、平滑迁移与性能收益的完整实践》

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> div /*核心:这些都是以div正中心开始旋转的.仔细看看文字,记住每一个文字开始都是在左上角为0deg。 你可以理解四个角是0deg 90deg 180deg 270deg,注意一下原点

qq_37805832的博客 855

YOLOv8训练流程-原理解析[目标检测理论篇]

本篇文章主要介绍了YOLOv8训练的流程,主要介绍了Task Aligned Assigner正负样本匹配策略以及YOLOv8的损失计算。

ice 4516

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Linux

多线程、shell语句、网络编程、mysql数据库、git远程仓库以及redis数据库与缓存的总结性学习

2601_94965056的博客 575

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

mysql临时表个数_mysql 的内存临时表两个参数 tmp_table_size、max_heap_table_size

mysql 5.5>show processlist;观察 State 列时,发现经常有 Copying to tmp table、Copying to tmp table on diskbaidu 了下,获取的信息是调整参数 tmp_table_size、max_heap_table_size这两个参数是mysql对临时表的大小控制其中tmp_table_size 控制内存临时表的最大值,...

weixin_34315803的博客 1155

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

mysql tmp 参数_tmp_table_size ---> 优化 MYSQL 经验总结

数据库连接突然增多到1000的问题查看了一下,未有LOCK操作语句。但是明显有好多copy to tmp table的SQL语句,这条语读的时间比较长,且这个表会被加读锁,相关表的update语句会被排进队列。如果多执行几次这样的copyt to tmp table 语句,会造成更多的语句被阻塞。连接太多造成mysql处理慢。copy to tmp talbe 语句产生的原因是查询需要Order ...

weixin_39740419的博客 862

mysql tmp 参数_mysql tmp_table_size优化之设置多大合适

通过设置tmp_table_size选项来增加一张临时表的大小,例如做高级GROUP BY操作生成的临时表。如果调高该值,MySQL同时将增加heap表的大小,可达到提高联接查询速度的效果,建议尽量优化查询,要确保查询过程中生成的临时表在内存中,避免临时表过大导致生成基于硬盘的MyISAM表。mysql> show global status like ‘created_tmp%‘;+———...

weixin_33142377的博客 1148

mysql临时表之tmp_table_size、 max_heap_table_size

tmp_table_size是内存临时表的最大值,max_heap_table_size是内存临时表的最大行数值。当执行的sql语句生成的临时表数量超过了最大值限制,就会将临时表储存在磁盘中。mysql用于储存中间结果的表称之为临时表,一般由复杂的sql语句执行时所创建。查看内存临时表的最大限制:(默认是16+M)一种是内存临时表,一种是磁盘临时表。4、from中的子查询。

liys0811的博客 784

这部豆瓣评分 9.4 的古董沙雕剧和 Python ...

玩梗,我们是认真的!那些你不知道的 Python 彩蛋!

DavyCloud 1904
上一篇: 别再乱删系统文件!Pagefile.sys和hiberfil.sys的完整避坑手册
下一篇: Linux网卡性能调优实战:用ethtool解决高并发场景下的丢包问题(附永久配置技巧)
五行擒拿术
博客等级 码龄26年 54粉丝 1361原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值