位置: 编程技术 - 正文

mysql Sort aborted: Out of sort memory, consider increasing server sort buffer size的解决方法

编辑:rootadmin

推荐整理分享mysql Sort aborted: Out of sort memory, consider increasing server sort buffer size的解决方法,希望有所帮助,仅作参考,欢迎阅读内容。

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

今天在检查mysql服务器的时候提示Sort aborted: Out of sort memory, consider increasing server sort buffer size,安装字面意思就是 sort内存溢出,考虑增加服务器的排序缓冲区(sort_buffer_size)大小

sort_buffer_size=3Mjoin_buffer_size = 3M

下面是针对G 内存设置的参数:

sort_buffer_size = 2M # Sort_Buffer_Size 是一个connection级参数,在每个connection(session)第一次需要使用这个buffer的时候,一次性分配设置的内存。#Sort_Buffer_Size 并不是越大越好,由于是connection级的参数,过大的设置+高并发可能会耗尽系统内存资源。例如:个连接将会消耗 *sort_buffer_size(8M)=4G内存#Sort_Buffer_Size 超过2KB的时候,就会使用mmap() 而不是 malloc() 来进行内存分配,导致效率降低。#技术导读 select*from table where order limit;出现filesort#属重点优化参数

不过我看到有人将sort_buffer_size设置为M,我就是因为设置了M,后来我设置为2-3M,就没有问题了

Written by cenalulu @ --

基础知识:

1、 Sort_Buffer_Size 是一个connection级参数,在每个connection第一次需要使用这个buffer的时候,一次性分配设置的内存。2、 Sort_Buffer_Size 并不是越大越好,由于是connection级的参数,过大的设置+高并发可能会耗尽系统内存资源。3、 文档说“On Linux, there are thresholds of KB and 2MB where larger values may significantly slow down memory allocation”

本文主要针对第三点做测试:据说Sort_Buffer_Size 超过2KB的时候,就会使用mmap() 而不是 malloc() 来进行内存分配,导致效率降低。

环境:

为了更大的体现性能差距,使用 1GB内存的Fedora 虚拟机进行测试

测试表结构:

mysql Sort aborted: Out of sort memory, consider increasing server sort buffer size的解决方法

1w 行的表, 表结构

+-------+------------------+------+-----+---------+----------------+| Field | Type | Null | Key | Default | Extra |+-------+------------------+------+-----+---------+----------------+| id | int() unsigned | NO | PRI | NULL | auto_increment || k | int() unsigned | NO | MUL | 0 | || c | char() | NO | | | || pad | char() | NO | | | |+-------+------------------+------+-----+---------+----------------+

测试语句:

分别设置Sort_Buffer_Size 为 K ,K, 3M ,然后运行以下语句,查看运行时间。1. sql_no_cache 防止query cache起效。2. limit 1 为了减少排序占执行时间的比重,更多的体现内存分配带来的影响3. 语句explain的结果是 filesort , 以确保使用sort_buffer

测试结果:

执行时间

K : 1.sK : 1.s3M : 2.s

K[root@localhost tmp]# mysqlslap -uroot -h.0.0.1 -q ' select sql_no_cache * from sbtest order by pad limit 1' -c --create-schema=test -i Benchmark Average number of seconds to run all queries: 1. seconds Minimum number of seconds to run all queries: 1. seconds Maximum number of seconds to run all queries: 1. seconds Number of clients running queries: Average number of queries per client: 1

K

[root@localhost tmp]# mysqlslap -uroot -h.0.0.1 -q ' select sql_no_cache * from sbtest order by pad limit 1' -c --create-schema=test -i Benchmark Average number of seconds to run all queries: 1. seconds Minimum number of seconds to run all queries: 1. seconds Maximum number of seconds to run all queries: 4. seconds Number of clients running queries: Average number of queries per client: 1

3M[root@localhost tmp]# mysqlslap -uroot -h.0.0.1 -q ' select sql_no_cache * from sbtest order by pad limit 1' -c --create-schema=test -i Benchmark Average number of seconds to run all queries: 2. seconds Minimum number of seconds to run all queries: 2. seconds Maximum number of seconds to run all queries: 2. seconds Number of clients running queries: Average number of queries per client: 1

结论:确实如文档所说, 使用mmap 分配内存时,会带来性能上的损耗,影响大约在 % 左右。 由于是limit 1,因此减弱了buffer size对排序速度的影响。其实buffer size 越大,所需要进行的sort-merge的次数越少,执行时间越短。视具体的语句而定。我只是想说明下,并不是越大越好。 也并不存在一个绝对的最佳值。还是要看具体的业务环境决定值的大小。 对于高并发的应用,还是别设置太大的比较好。

实例解析MySQL中的存储过程及存储过程的调用方法 mysql在5.1之后增加了存储过程的功能,存储过程运行在mysql内部,语句都已经编译好了,速度比sql更快.存储过程与mysql相当于shell和linux系统。如果你是程

win7下MySql 5.7安装配置方法图文教程 上学的时候经常使用MySql,当时也没想其他,主要是MySql对电脑的要求比较低,负载比较小。工作后一直在使用Oracle,现在因为项目的需要,重新安装MySq

mysql 5.7. winx安装配置方法图文教程 在位Windows7操作系统上安装和配置MySql数据库系统。一、mysql5.7.winx安装配置方法步骤:1、官网下载MySQL数据库和驱动程序(Windows):mysql-5.7.-winx.zip2

标签: mysql Sort aborted: Out of sort memory, consider increasing server sort buffer size的解决方法

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

上一篇:Windows下mysql修改root密码的4种方法(修改mysql配置的两种方法)

下一篇:实例解析MySQL中的存储过程及存储过程的调用方法(mysql案例分析)

  • 增值税小规模纳税人认定标准
  • 待认证进项税额是什么情况下用的
  • 小规模纳税人如何转一般纳税人
  • 建账的主要流程
  • 利润表的未分配利润是哪个
  • 一般纳税人当月生效次月生效有什么区别
  • 什么叫销售劳务
  • 用进项税冲抵当月增值税的会计分录
  • 客户退货的会计分录
  • 发票已认证还能作废吗2020
  • 押金是为了什么
  • 事业单位过节发东西
  • 制造费用的
  • 医疗机构交企业所得税吗
  • 价格调节基金税率和计税依据
  • 怎么计提企业所得税
  • 涉农贷款损失
  • 集团对子公司投资收益协议
  • 车辆购置税计税价格含增值税吗
  • 资管公司如何缴纳流转税?
  • 一般纳税人企业所得税税率多少
  • 汽车的增值税可以退税吗
  • 简易计税劳务分包发票可以差额抵扣吗
  • 免征增值税的税额还要交个人所得税吗
  • 收到工会经费返还如何做账
  • won11检测
  • 文件校验有什么用
  • 代理进口增值税客户不抵扣,进出口公司可以抵扣吗
  • 为什么网页总是跳掉
  • 发票开出后对方不付款
  • 天津市残保金缴纳标准
  • 融资租赁业务的操作程序
  • 增值税发票销货清单哪里领
  • 最小的3g无线路由器型号
  • 企业汇算清缴后发现有多计提的成本
  • 董事会会费应计什么科目
  • php实现图片上传
  • 整体租赁合同
  • php获取并显示用户的用户名
  • 商家为消费者提供餐具
  • 法人从公账上取款会计分录
  • Ubuntu18.04安装cuda10.2
  • 税务三流一致是什么意思
  • 账户利息怎么计算
  • 交通费比例
  • 免税农产品的范围有哪些
  • php判断数据类型
  • 补发工资个人所得税税
  • 税务申报残保金
  • 所得税预缴怎么申报
  • 对公账户是怎样的
  • 畜类生产性生物资产计算折旧的最低年限
  • 油费预付卡如何办理
  • 税费改革的思路
  • 个人所得税财产转让所得税率
  • 现金日记账支出写借方还是贷方
  • 核定征收也需要报税务报表吗?
  • 主营业务收入的t型账户怎么写
  • 描述企业会计准则中对固定资产的具体规定
  • 购买固定资产的账务处理
  • 工程未竣工可以出竣工报告吗
  • mysql设计树形数据库
  • win8语言栏不见了 怎么调出来
  • Windows如何自动关机
  • win10不是自己的账户
  • xp系统本地用户和组在哪里
  • 三步搞定的贵公子发型教程
  • opware12.exe - opware12进程是什么文件 有什么用
  • win7系统出现蓝屏
  • linux的安装
  • 批处理中for语句的哪个参数表示目录
  • unity飞机大战游戏毕业论文
  • jQuery validate+artdialog+jquery form实现弹出表单思路详解
  • 国家税务局服务宗旨是什么
  • 土地重置成本价
  • 发票 报销期限
  • 广西国家税务局于红林
  • 南京税务证明怎么打印
  • 可以在企业所得税税前扣除的税金
  • 政务公开有何意义
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设