位置: 编程技术 - 正文

mysql tmp_table_size优化之设置多大合适

编辑:rootadmin

推荐整理分享mysql tmp_table_size优化之设置多大合适,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

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

mysql> show global status like ‘created_tmp%‘;

+——————————?+———+

| Variable_name   | Value |

+———————————-+———+

| Created_tmp_disk_tables | |

| Created_tmp_files   |   |

| Created_tmp_tables  | |

+——————————?+———?+

每次创建临时表,Created_tmp_tables增加,如果临时表大小超过tmp_table_size,则是在磁盘上创建临时表,Created_tmp_disk_tables也增加,Created_tmp_files表示MySQL服务创建的临时文件文件数,比较理想的配置是:

Created_tmp_disk_tables / Created_tmp_tables * % <= %比如上面的服务器Created_tmp_disk_tables / Created_tmp_tables * % =1.%,应该相当好了

默认为M,可调到-最佳,线程独占,太大可能内存不够I/O堵塞

如果动态页面要调大点,M以上,如果网站大部分都是静态内容,一般M足够。

tmp_table_size优化

mysql tmp_table_size优化之设置多大合适

数据库连接突然增多到的问题

查看了一下,未有LOCK操作语句。

但是明显有好多copy to tmp table的SQL语句,这条语读的时间比较长,且这个表会被加读锁,相关表的update语句会被排进队列。如果多执行几次这样的copyt to tmp table 语句,会造成更多的语句被阻塞。连接太多造成mysql处理慢。

copy to tmp talbe 语句产生的原因是查询需要Order By 或者Group By等需要用到结果集时,参数中设置的临时表的大小小于结果集的大小时,就会将该表放在磁盘上,这个时候在硬盘上的IO要比内销差很多。所耗费的时间也多很多。另外Mysql的另外一个参数max_heap_table_size比tmp_table_size小时,则系统会把max_heap_table_size的值作为最大的内存临时表的上限,大于这个时,改写硬盘。我们的mysql这两个参数为:

tmp_table_size (.5M)max_heap_table_size (.7M)比较小。建议增加到上百M。我们的内存应该够吧。

另外join_buffer_size(影响 表之间join性能的缓存)为 (K)较小,可以增加一点。

[root@mail ~]# vi /etc/my.cnf

[mysqld]tmp_table_size=M

mysql> show processlist; mysql> show columns from wp_posts;

SQL 语句的第一个 LEFT JOIN ON 子句中: LEFT JOIN _myuser AS t3 ON t1.userid=t3.userid _mydata 的 userid 被参与了条件比较运算。为 _mydata 表根据字段 userid 建立了一个索引: mysql> ALTER TABLE `_mydata` ADD INDEX ( `userid` ) 增加 tmp_table_size 值。mysql 的配置文件中,tmp_table_size 的默认大小是 M。如果一张临时表超出该大小,MySQL产生一个 The table tbl_name is full 形式的错误,如果你做很多高级 GROUP BY 查询,增加 tmp_table_size 值。 这是 mysql 官方关于此选项的解释:

tmp_table_size

This variable determines the maximum size for a temporary table in memory. If the table becomes too large, a MYISAM table is created on disk. Try to avoid temporary tables by optimizing the queries where possible, but where this is not possible, try to ensure temporary tables are always stored in memory. Watching the processlist for queries with temporary tables that take too long to resolve can give you an early warning that tmp_table_size needs to be upped. Be aware that memory is also allocated per-thread. An example where upping this worked for more was a server where I upped this from MB (the default) to MB with immediate effect. The quicker resolution of queries resulted in less threads being active at any one time, with all-round benefits for the server, and available memory.对 WHERE, JOIN, MAX(), MIN(), ORDER BY 等子句中的条件判断中用到的字段,应该根据其建立索引INDEX。索引被用来快速找出在一个列上用一特定值的行。没有索引,MySQL不得不首先以第一条记录开始并然后读完整个表直到它找出相关的行。表越大,花费时间越多。如果表对于查询的列有一个索引,MySQL能快速到达一个位置去搜寻到数据文件的中间,没有必要考虑所有数据。如果一个表有行,这比顺序读取至少快倍。所有的MySQL索引(PRIMARY、UNIQUE和INDEX)在B树中存储。根据 mysql 的开发文档:

索引 index 用于: 快速找出匹配一个WHERE子句的行 当执行联结(JOIN)时,从其他表检索行。 对特定的索引列找出MAX()或MIN()值 如果排序或分组在一个可用键的最左面前缀上进行(例如,ORDER BY key_part_1,key_part_2),排序或分组一个表。如果所有键值部分跟随DESC,键以倒序被读取。 在一些情况中,一个查询能被优化来检索值,不用咨询数据文件。如果对某些表的所有使用的列是数字型的并且构成某些键的最左面前缀,为了更快,值可以从索引树被检索出来。假定你发出下列SELECT语句:

mysql> select * FROM tbl_name WHERE col1=val1 AND col2=val2;如果一个多列索引存在于col1和col2上,适当的行可以直接被取出。如果分开的单行列索引存在于col1和col2上,优化器试图通过决定哪个索引将找到更少的行并来找出更具限制性的索引并且使用该索引取行。一般动态设置tmp_table_size的大小的时候,要使用:

set global tmp_table_size=**set global tmp_table_size=M# - Incorrect argument type to variable 'tmp_table_size'

MySQL 配置优化(多个参数) 下面列出了对性能优化影响较大的主要变量,主要分为连接请求的变量和缓冲区变量。1.连接请求的变量:1)max_connectionsMySQL的最大连接数,增加该值增

MySQL学习第一天 第一次接触MySQL 一、什么是数据库?数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,每个数据库都有一个或多个不同的API用于创建,访问,管理,搜索

MySQL学习第二天 安装和配置mysql winx 一、安装方式MySQL安装文件分为两种,一种是MSI格式的,一种是ZIP格式的。下面来看看这两种方式:MSI格式的可以直接点击安装,按照它给出的安装提示

标签: mysql tmp_table_size优化之设置多大合适

本文链接地址:https://www.jiuchutong.com/biancheng/347540.html 转载请保留说明!

上一篇:MySql二进制连接方式详解(mysql二进制安装教程)

下一篇:MySQL 配置优化(多个参数)(mysql优化配置文件)

  • 小规模收到专票怎么处理
  • 跨年的所得税会计分录
  • 预缴税款是什么科目
  • 出口关税的计算基数
  • 上传附报资料在哪下载
  • 出纳个人账户转公户
  • 专用发票给客户的是第几联
  • 电子发票限额多了怎么办
  • 注册公司认缴资本不缴可以吗
  • 装饰费是否计算缴纳土地增值税
  • 企业作为二房东要交什么税
  • 超标公积金应怎么办理
  • 质量问题产生的影响
  • 开了增值税专用发票对方不付款可以申请冻结对方公帐嘛
  • 购买房产,税费怎么计算
  • 勾选认证售票状态可以改吗
  • 运费发票没有开 怎么做到成本
  • 补发工资申请书格式范本
  • 购货未能取得发票怎么办
  • 计提印花税会计分录怎么写
  • 所得税报表里的资产总额在哪里取数
  • 调整以前年度企业所得税会计分录
  • 只有发票没有银行客户专用回单是啥意思
  • 电脑桌面图标如何更改自定义图片
  • 没有一般纳税人证明怎么办
  • 全网最详细的破解卡密软件教程[2021首发]
  • mcdlc.exe - mcdlc是什么进程文件 有何作用
  • kindle屏幕黑斑
  • lnmgr.exe是什么
  • 电脑卡慢咋办
  • php去除空格和换行符
  • 长期股权投资凭证
  • php 5
  • web应用程序的主要组成部分
  • 福利费专用发票如何账务处理
  • 淘宝镜像网站
  • 金税盘全额抵扣分录
  • 购买车辆的进项税怎么抵扣
  • 关联公司代缴社保会计处理
  • 防伪税控技术服务费订单号怎么查
  • 虚开增值税发票不是也要缴税吗
  • html怎么样
  • mysql存储过程之错误处理
  • Discus X 3 门户改造熊掌号网页教程
  • 织梦使用教程
  • 独立核算的分公司可以汇总纳税吗
  • 免税农产品发票需要勾选吗
  • 车船税和保险在一张发票怎么做账
  • 小企业销售收入分录
  • 小规模纳税人能开3%的专票吗
  • mysql group by实现原理
  • 小规模纳税人企业所得税优惠政策最新2023
  • 个人劳务报酬所得税税率表
  • 开办费用怎么处理
  • 购买土地的入账价值包括什么
  • 长期未用的定金可以退吗
  • 暂扣员工工资应怎么处理
  • 非流动资产减少
  • 研发支出的定义
  • 固定资产净残值最后怎么处理
  • 什么是累计预扣预缴应纳税所得额
  • 被投资企业注销,确认投资损失需
  • mysql的分区表
  • 利用的英文
  • win9有吗
  • secbizsrv.exe是什么程序
  • win8.1怎么升级成win7
  • 在苹果电脑mac上怎么下载
  • vim的配置文件名
  • linux中nfs的搭建
  • cocos2dx运行原理
  • perl 运算
  • 用原生js写项目
  • 批处理作用
  • jquery插件使用教程
  • three. js
  • jquery.flot
  • Genymotion首次运行程序出现错误Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
  • 存款利息需要交税吗
  • 三证合一开票信息
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设