返回顶部
首页 > 资讯 > 数据库 >mysql大表中count()的用法案例
  • 865
分享到

mysql大表中count()的用法案例

2024-04-02 19:04:59 865人浏览 泡泡鱼
摘要

这篇文章主要介绍了Mysql大表中count()的用法案例,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。一个单表中包含有6000w+的数据,然而

这篇文章主要介绍了Mysql大表中count()的用法案例,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

一个单表中包含有6000w+的数据,然而你又不能拆分.需要分别统计表中有多少数据,A产品有多少,B产品有多少这几个数据.

在为优化之前.表结构如下,为了隐藏内容我将相应字段做了模糊化处理.

CREATE TABLE `xxxx` (
  `link` varchar(200) DEFAULT NULL,
  `test0` varchar(500) DEFAULT NULL,
  `test1` varchar(50) DEFAULT NULL,
  `test2` int(11) DEFAULT NULL,
  `test3` varchar(20) DEFAULT NULL,
  `test4` varchar(50) DEFAULT NULL,
  `test5` varchar(50) NOT NULL,
  `inserttime` datetime DEFAULT NULL,
  `test6` bit(1) NOT NULL DEFAULT b'0',
  `A` bit(1) NOT NULL DEFAULT b'0',
  `B` bit(1) NOT NULL DEFAULT b'0' ,
  PRIMARY KEY (`test5`),
  KEY `test6` (`test6`) USING BTREE,
  KEY `A` (`A`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

这个一个常规的InnoDB的表格,所以它的count(*)比起MyISAM的效率慢很多,InnoDB所显示的row的行数不很准确,所以在这这里我需要统计一下.有这么几个策略.
共计61500000数据

count(*) 耗时 1539.499s

count(1) 耗时 907.581s

count(A) 对索引进行count.

count(test6) 对主键进行count.

无一例外,由于这个表没有优化好上面无论哪一种都需要几千秒的时间,这个是我们无法忍受的.

下面我们开始着手分析处理这个问题.

预期整个表的count(*)应该在200s以内为正常,100以内为良好,50以内为优秀.

首先我将里面test6抽取了出来,单独形成了一个表.对其进行操作.
共计61500000数据

count(*) 耗时10.238s

count(1) 耗时8.710s

count(test6) 对主键进行count.耗时12.957s

其中count(1)的效率最高,比最慢count(pk)速度提升了52.0%.

将你能确定的字段改为最优值,例如:

varchar更为char.虽然varchar可以自动分配存储空间的大小但是.varchar需要使用1到2个额外的字节来记录字符串的长度,增加它的update的操作时间,

datetime改为timestamp后者在1978-2038年之间

最后使用count(1)检验的时候最快耗时,168s.虽然有些慢但是可以接受.

总结:

重新设计你表中的字段,尽量优化它的长度.不要一味使用过多的varchar.

使用count(1)而不是count(*)来检索.

感谢你能够认真阅读完这篇文章,希望小编分享mysql大表中count()的用法案例内容对大家有帮助,同时也希望大家多多支持编程网,关注编程网数据库频道,遇到问题就找编程网,详细的解决方法等着你来学习!

您可能感兴趣的文档:

--结束END--

本文标题: mysql大表中count()的用法案例

本文链接: https://lsjlt.com/news/52386.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • mysql大表中count()的用法案例
    这篇文章主要介绍了mysql大表中count()的用法案例,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。一个单表中包含有6000w+的数据,然而...
    99+
    2024-04-02
  • MySQL大表count()的优化实现示例
    小编给大家分享一下MySQL大表count()的优化实现示例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!今天实验了一下MySQL的count()操作优化, 以下...
    99+
    2023-06-14
  • MySQL 大表的count()优化实现
    以下是基于我结合B+树的数据结构和对实验结果的推测作出的判断,如有错误,恳请指正! 今天实验了一下MySQL的count()操作优化, 以下讨论基于mysql5.7 InnoDB存储引擎. x86 windows操作...
    99+
    2022-05-12
    MySQL 大表count优化 MySQL 大表count
  • mysql中count()语句的用法介绍
    本篇内容主要讲解“mysql中count()语句的用法介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mysql中count()语句的用法介绍”吧!查看表结构...
    99+
    2024-04-02
  • MySQL中count(*)执行慢的解决方案
    目录一、 count(*) 的实现方式1、实现方式比较2、为什么InnoDB不像MyISAM一样,也把数字存起来3、小结二、计数方法1、用缓存系统保存计数2、在数据库保存计数三、不同...
    99+
    2024-04-02
  • mysql中having count的用法是什么
    在MySQL中,HAVING COUNT语句通常用于与GROUP BY一起使用,用于过滤聚合函数结果。当需要对分组后的数据进...
    99+
    2024-03-04
    mysql
  • mysql中count和distinct的用法是什么
    在MySQL中,COUNT()函数用于计算指定列中的行数,而DISTINCT关键字用于指定只统计不同的值。通常情况下,COUNT()...
    99+
    2024-04-09
    mysql
  • Mysql中使用count加条件统计的实现示例
    目录前言测试环境准备工作条件统计总结前言 最近发现在处理mysql问题时,count()函数频繁上镜,常常出现在分组统计的情景下,但是有时候并不是使用group by分好组就可以直接统计了,比如说一个常见的需求,统计每个...
    99+
    2022-07-29
    Mysql count条件统计 Mysql count条件
  • mysql中库和表的简单操作案例
    这篇文章主要介绍mysql中库和表的简单操作案例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一. 库的操作1.创建数据库创建数据库:create database 库名 chars...
    99+
    2024-04-02
  • MySQL中的count()、union()和group by语句的用法
    本篇内容介绍了“MySQL中的count()、union()和group by语句的用法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情...
    99+
    2024-04-02
  • python中count()函数的用法
    ...
    99+
    2023-01-31
    函数 python count
  • mysql中查看表大小的方法
    mysql中查看表大小的方法?这个问题可能是我们日常学习或工作经常见到的。希望通过这个问题能让你收获颇深。下面是小编给大家带来的参考内容,让我们一起来看看吧!mysql 查看表的大小方法:1、查看所有数据库...
    99+
    2024-04-02
  • 详解 MySQL中count函数的正确使用方法
    1. 描述 在MySQL中,当我们需要获取某张表中的总行数时,一般会选择使用下面的语句 select count(*) from table; 其实count函数中除了*还可以放其他参数,比如常数、主...
    99+
    2022-05-17
    MySQL count MySQL count函数
  • MySQL中select count()的作用是什么
    select count()函数用于统计查询结果集中行的数量。可以用来快速获取表中数据的总数,或者根据条件统计满足条件的行...
    99+
    2024-05-13
    MySQL
  • MySQL中注释的使用案例
    这篇文章主要介绍MySQL中注释的使用案例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!每一种语言都有自己的注释方式,代码量越多,代码注释的重要性也就越明显。一般情况下,注释可以出现...
    99+
    2024-04-02
  • mysql sum(if())和count(if())的用法说明
    目录mysql sum(if())和count(if())的用法解析mysql 聚合函数 根据条件求和 sum(if())mysql sum(if())...
    99+
    2024-04-02
  • Vue中map()的用法案例
    目录前言一、map()是什么?二、使用1.案例一:取给定数组的某一字段组成新数组2.案例二:取给定数组的某些字段重命名并组成新数组三、总结前言 记录vue常用得map(),喜欢在前台...
    99+
    2024-04-02
  • QueryWrapper中eq的用法案例
    public ResponseResult bind(DriverCarBindingRelationship driverCarBindingRelationship){ ...
    99+
    2023-10-27
    mysql java 数据库
  • mysql两表查询的案例分析
    小编给大家分享一下mysql两表查询的案例分析,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!mysql两表查询的方法:1、使用“select 字段列表 from 表1,表2 [whe...
    99+
    2024-04-02
  • 修改mysql数据库表的案例
    这篇文章主要介绍修改mysql数据库表的案例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!修改mysql数据库表的方法:使用“ALTER TABLE”语句,可以改变原有表的结构,例如...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作