当前位置: 首页 > news >正文

SQL优化--count优化

select count(*) from tb_user ;

在之前的测试中,我们发现,如果数据量很大,在执行count操作时,是非常耗时的。

MyISAM 引擎把一个表的总行数存在了磁盘上,因此执行 count(*) 的时候会直接返回这个 数,效率很高; 但是如果是带条件的count,MyISAM也慢。

InnoDB 引擎就麻烦了,它执行 count(*) 的时候,需要把数据一行一行地从引擎里面读出 来,然后累积计数。

如果说要大幅度提升InnoDB表的count效率,主要的优化思路:

自己计数(可以借助于redis这样的数 据库进行,但是如果是带条件的count又比较麻烦了)。

count用法

count() 是一个聚合函数,对于返回的结果集,一行行地判断,如果 count 函数的参数不是 NULL,累计值就加 1,否则不加,最后返回累计值。

用法:

count(*)、count(主键)、count(字段)、count(数字)

按照效率排序的话,count(字段) < count(主键 id) < count(1) ≈ count(*),所以尽 量使用 count(*)。

http://www.lryc.cn/news/168381.html

相关文章:

  • IDEA下使用Spring MVC
  • 2022基金从业人员资格管理及后续职业培训 部分答案(自答)
  • 阿里云通义千问向全社会开放,近期将开源更大参数规模大模型
  • 数据结构:二叉查找树
  • Redis的介绍,安装Redis的方式
  • 深入理解CI/CD流程:改变你的开发生命周期
  • 【React】React入门
  • 面相面试知识--Lottery项目
  • 《Python趣味工具》——自制emoji2(2)
  • 【面试刷题】——C++四种类型转化
  • 集成Activiti-Modeler流程设计器
  • 【深度学习】 Python 和 NumPy 系列教程(十一):NumPy详解:3、数组数学(元素、数组、矩阵级别的各种运算)
  • python难题切片处理
  • 《研发效能(DevOps)工程师(中级)认证》证书查询方式和路径丨IDCF
  • NVR添加rtsp流模拟GB28181视频通道
  • 浅谈C++|文件篇
  • C++ QT qml 学习之 做个登录界面
  • LLM 06-大模型架构
  • openGauss学习笔记-71 openGauss 数据库管理-创建和管理普通表-删除表中数据
  • 【k8s】kube-proxy 工作模式
  • Linux:Centos9 《下载-安装》
  • 数字化管理平台建设实践
  • Linux命令(80)之sort
  • [k8s] kubectl port-forward 和kubectl expose的区别
  • vscode如何设置文件折叠
  • Linux centos7 bash编程训练
  • k8s集群换ip
  • 选择HAL库还是标准库
  • 计算机竞赛 机器视觉的试卷批改系统 - opencv python 视觉识别
  • Mapbox gl HTML经纬度点渲染,动态轨迹播放,自定义图形以及轨迹上显示箭头方向