mysql Copying to tmp table on disk 影响性能

互联网十八般武艺 互联网十八般武艺

在使用mysql是突然发现提醒mysql Copying to tmp table on disk 错误了,下面我们来看看此问题的解决办法.

经过查资料发现mysql可以通过变量tmp_table_size和max_heap_table_size来控制内存表大小上限,如果超过上限会将数据写到磁盘上,从而会有物理磁盘的读写操作,导致影响性能.

我们可以通过调整这两个变量的值来提升性能,当然前提条件是mysql所在服务器有足够的内存.

首先可以通过下面语句查看当前的变量值:

SHOW VARIABLES LIKE ‘max_heap_table_size%’;

然后通过SET GLOBAL max_heap_table_size=522715200; 设置变量值为512M,你可以根据自己的情况设置合适的值,tmp_table_size变量的设置方法一样.

SHOW VARIABLES LIKE ‘tmp_table_size’;

SET GLOBAL max_heap_table_size=512*1024*1024;

其次发现开发人员编写的语句,根本无法使用到缓存,这个sql优化是个长期的过程,代码如下:

  1. #Time:14090116:26:23
  2. #User@Host:wealth[wealth]@[172.20.1.70]
  3. #Query_time:2266.887211Lock_time:0.000196Rows_sent:17Rows_examined:71501657
  4. SETtimestamp=1409559983;
  5. SELECTa.Pid,count(a.id)ascount,p.ProductId,p.ProductName,p.ProductType,p.Profit,p.StartTime,p.EndTime,p.StartMoney,p.AddTime,i.IssuerNameFROM`Issuer`asi,`Count`asaleftjoinProductaspona.Pid=p.ProductIdWHEREa.Stime>‘time()–3600*24*30′andp.IssuerId=i.IssuerIdANDp.IsDel=0groupbya.Pidorderbycount(a.id)desclimit0,17;
  6. //开源代码phpfensi.com

相关广告
  • mysql Copying to tmp table on disk 影响性能 mysql Copying to tmp table on disk 影响性能 mysql Copying to tmp table on disk 影响性能
相关阅读

mysql Copying to tmp table on disk 影响性能

2019/10/10 17:37:58 | 谷歌SEO算法 | 搜索引擎