首页 > 数据库 >【Mysql】mysql count主键字段很慢超时 执行计划Select tables optimized away ,最终调整buffer pool问题解决

【Mysql】mysql count主键字段很慢超时 执行计划Select tables optimized away ,最终调整buffer pool问题解决

时间:2024-08-30 15:19:00浏览次数:11  
标签:count tables buffer mysql sql 主键 pool

 

背景:

 

mysql表  主键字段 count,速度很慢,耗时将近30s

 

 

 

从执行计划可以看出:

explain SELECT COUNT(rule_id) AS dataCount FROM `sku_safe_stock_rule`;

 

 

 

原理分析:

Select tables optimized away

SELECT操作已经优化到不能再优化了
(MySQL根本没有遍历表或索引就返回数据了)

由此可以看出 本sql语句执行解析后,直接在 mysql buffer缓存即可命中,不用去存储引擎遍历表即可返回结果。



 




 

 

 

继续分析:

 

但是既然直接在缓存命中后即可返回count()结果,为什么仍然这么慢?

  这里便引出 mysql  buffer pool这个概念.  (详细原理可再查再学)

 

 

 

最终解决:

最终,发现 
1.
mysql  buffer pool只有 512M。
调整为 2G后, 该条count(主键) sql性能便提升飞速。


 2.
 mysql表中总数据量440W+, 失效数据很多,执行sql工单,归档无效数据后,对sql性能也有很大帮助。 

 

标签:count,tables,buffer,mysql,sql,主键,pool
From: https://www.cnblogs.com/sxdcgaq8080/p/18388797

相关文章

  • MySQL-进阶篇-SQL优化(插入数据优化、主键优化、order by优化、group by优化、limit优
    文章目录1.插入数据优化1.1使用批量插入1.2批量插入数据时手动提交事务1.3按主键的顺序插入1.4大批量插入数据时使用load指令2.主键优化2.1数据组织方式2.2页分裂2.3页合并2.4主键的设计原则2.4.1降低主键的长度2.4.2使用AUTO_INCREMENT自增主键2.4.3......
  • Encoding.Default.GetByteCount(),C# 获取字符串字节长度
    原文链接:https://blog.csdn.net/lidin888/article/details/127674079一、C#获取字符串字节长度1.在C#语言中使用string字符串Unicode编码2.在C#语言中常用汉字占3个字节方式1:使用默认编码类获取字节长度Console.WriteLine(Encoding.Default.GetByteCount("张三"));//输......
  • 解决Git异常 Access denied your account has 2FA enabled
    摘要:解决Git双因子身份验证问题。问题背景  在使用账号和密码的方式拉取公司GitLab代码时,遇到了以下错误提示问题:remote:HTTPBasic:Accessdenied.Theprovidedpasswordortokenisincorrectoryouraccounthas2FAenabledandyoumustuseapersonalaccesstok......
  • P10013 [集训队互测 2023] Tree Topological Order Counting
    Description给定一颗\(n\)个点的有根树,\(1\)是根,记\(u\)的父亲是\(fa_u\)。另给出一长度为\(n\)的权值序列\(b\)。称一个长度为\(n\)的排列\(a\)为这颗树的合法拓扑序,当且仅当\(\forall2\leu\len,a_u>a_{fa_u}\)。对每个点\(u\),定义\(f(u)\)为,在所有这......
  • 数仓之TABLESAMPLE采样
    前言在日常工作中,我们会对表中记录随机抽样然后探查,如何进行抽样就是本章要讲的重点。数仓中的抽样方法有很多,这里主要介绍一下:随机抽样、块抽样、桶抽样、分组抽样这四种,话不多说,直接上干货。随机抽样随机抽样就是给每行数据赋值一个随机数,排序之后进行抽样,主要分为:or......
  • 2024-08-28:用go语言,给定一个从1开始、长度为n的整数数组nums,定义一个函数greaterCount
    2024-08-28:用go语言,给定一个从1开始、长度为n的整数数组nums,定义一个函数greaterCount(arr,val)可以返回数组arr中大于val的元素数量。按照以下规则进行n次操作,将nums中的元素分配到两个数组arr1和arr2中:1.第一次操作将nums[1]加入arr1。2.第二次操作将nums[2]加入arr2。3.对......
  • 【Shell脚本】iptables 自动屏蔽访问网站频繁的IP
    场景恶意访问,安全防范1)屏蔽每分钟访问超过200的IP方法1:根据访问日志(Nginx为例)#!/bin/bashDATE=$(date+%d/%b/%Y:%H:%M)ABNORMAL_IP=$(tail-n5000access.log|grep$DATE|awk'{a[$1]++}END{for(iina)if(a[i]>100)printi}')#先tail防止文件过大,读取慢,数字可......
  • [ARC174E] Existence Counting
    MyBlogs[ARC174E]ExistenceCounting比较机械的处理方式。和NOID2T2是一个性质,只不过简单多了。枚举生成序列和\(P\)的第一个不同位置\(i\),则第\(i\)个位置能填的数的个数\(g_i\)是\(<a_i\)并且之前没有出现过的数,\(g_i\)可以简单用树状数组求出。然后考虑如何......
  • Ansible `iptables` 模块
    Ansibleiptables模块一、简介功能:iptables模块用于管理Linux系统上的防火墙规则。通过这个模块,可以添加、删除和修改iptables规则,以控制进出系统的网络流量。使用场景:适用于需要管理防火墙规则的场景,如限制特定端口的访问、允许特定IP的连接、配置NAT等。二、......
  • [1047] AWS S3 bucket owner granting cross-account bucket permissions
    ref:Bucketownergrantingcross-accountbucketpermissionsPreparingforthewalkthroughStep1:DotheAccountAtasksStep2:DotheAccountBtasksStep3:(Optional)TryexplicitdenyStep4:Cleanup......