广告
返回顶部
首页 > 资讯 > 数据库 >MySQL 百万级/千万级表 总记录数查询
  • 251
分享到

MySQL 百万级/千万级表 总记录数查询

mysql数据库 2023-09-06 07:09:31 251人浏览 薄情痞子
摘要

业务背景:基于 InnoDB 存储引擎的表,在数据量达到百万级之后,用 count 函数查询表记录总数会变得很慢,会导致服务请求超时。针对这种情况总结下我所想到的解决办法。 实际业务场景: 表名表名含义行记录数base_house房屋表42

业务背景:基于 InnoDB 存储引擎的表,在数据量达到百万级之后,用 count 函数查询表记录总数会变得很慢,会导致服务请求超时。针对这种情况总结下我所想到的解决办法。

实际业务场景

表名表名含义行记录数
base_house房屋表4201183

解决方案一:使用count 函数

-- 执行sql 语句select count(1) from bad_house;-- SQL 执行时间5.133S

使用场景说明:针对百万级及其以上的表数据记录总数统计不推荐使用。

解决方案二:使用预估值

-- 执行SQL查询select TABLE_NAME, TABLE_ROWSfrom      INFORMATioN_SCHEMA.PARTITIONS  where     TABLE_SCHEMA = 'test'     and TABLE_NAME='bds_house';-- 执行时间0.003S

使用场景说明:针对百万级及其以上的表数据记录总数通过Mysql数据管理系统自带库表,查询指定schema和table_name的记录总数。温馨提示:这里是个预估值,但与实际表记录总数非存在差别,由于mysql数据管理系统需要定时更新表的记录总数。

解决方案三:通过自增长Id,统计指定表的记录总数

前提条件:表主键id 必须使用自增长,且必须确保表中数据几乎没有跳id、删数据的情况下,直接用最大id,减最小id。

-- 执行asc 升序排序,且取第一条记录select id from bds_house order by id asc limit 1;-- 执行时间0.9S-- 执行desc 降序排序,且取第一条记录select id from bds_house order by id desc limit 1;-- 执行时间1.2S-- 最后一步:使用desc 降序id值 - 使用asc 升序id值

解决方案四:创建一张统计表table_count, 实时记录给表的记录数

table_count 表结构设计:

DROP TABLE IF EXISTS table_count;CREATE TABLE table_count(    ID INT NOT NULL AUTO_INCREMENT  COMMENT '主键' ,    TABLE_NAME VARCHAR(255) NOT NULL   COMMENT '表名' ,    TABLE_COUNT INT    COMMENT '表记录总数' ,    CREATED_BY VARCHAR(255)    COMMENT '创建人' ,    CREATED_TIME DATETIME    COMMENT '创建时间' ,    UPDATED_BY VARCHAR(255)    COMMENT '更新人' ,    UPDATED_TIME DATETIME    COMMENT '更新时间' ,    PRIMARY KEY (ID))  COMMENT = '表记录总数';

设计存储过程:主要实现统计各表的记录总数,我这里以bds_house 表为实例

create procedure table_count_procedure()begin-- 定义字段declare R_TABLE_COUNT int default 0;-- 查询bds_count 表记录总数select count(1) into R_TABLE_COUNT  from bds_house;-- 执行数据库插入insert into table_count(table_name, table_count) values('bds_house', R_TABLE_COUNT);end

定时调用存储过程的方式:

单体应用:spring定时任务框架、Quartz、Java Timer/Task等等

分布式应用:XXL-job、分布式Quartz、Elastic-job 等等

来源地址:https://blog.csdn.net/zhouzhiwengang/article/details/127853259

您可能感兴趣的文档:

--结束END--

本文标题: MySQL 百万级/千万级表 总记录数查询

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL 百万级/千万级表 总记录数查询
    业务背景:基于 InnoDB 存储引擎的表,在数据量达到百万级之后,用 count 函数查询表记录总数会变得很慢,会导致服务请求超时。针对这种情况总结下我所想到的解决办法。 实际业务场景: 表名表名含义行记录数base_house房屋表42...
    99+
    2023-09-06
    mysql 数据库
  • MySQL千万级数据表的优化实战记录
    前言 这里先说明一下,网上很多人说阿里规定500w数据就要分库分表。实际上,这个500w并不是定义死的,而是与MySQL的配置以及机器的硬件有关。MySQL为了提升性能,会将表的索引...
    99+
    2022-11-12
  • oracle千万级数据怎么查询
    查询千万级数据可以采用以下方法:1. 使用索引:对于经常需要查询的字段,可以创建索引来加快查询速度。索引可以提高查询性能,但会增加写...
    99+
    2023-09-13
    oracle
  • MySQL 百万级数据分页查询优化
    方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N 适应场景: 适用于数据量较少的情况(元组百/千级) 原因/缺点: 全表扫描,速度会很慢 ...
    99+
    2020-02-11
    MySQL 百万级数据分页查询优化
  • 怎么在mysql中优化百万级数据表的查询
    怎么在mysql中优化百万级数据表的查询?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.两种查询引擎查询速度(myIsam 引擎 )InnoDB 中不保存表的...
    99+
    2023-06-15
  • MySQL百万级数据分页查询优化方案
    当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询。对于数据库分页查询,也有很多种方法和优化的点。下面简单说一下我知道的一些方法。 ...
    99+
    2022-10-18
  • 详解MySQL数据库千万级数据查询和存储
    目录百万级数据处理方案数据存储结构设计查询语句优化千万级数据处理方案数据存储结构设计数据库表主键设计MySQL面试题MySQL数据库千万级数据查询优化方案你用过MySQL那些存储引擎他们都有什么特点和区别?那他们都有...
    99+
    2022-05-14
    mysql 数据 mysql 存储 千万级 优化
  • MySQL中怎么优化千万级数据表
    MySQL中怎么优化千万级数据表,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。我这里有张表,数据有1000w,目前只有一个主键索引CREATE TAB...
    99+
    2023-06-20
  • MySQL千万级数据查询的优化技巧及思路
    随着数据量的不断增长,MySQL千万级数据查询的优化问题也日益引人注目。在这篇文章中,我们将深入探讨MySQL千万级数据查询优化的方法和技巧,以帮助开发者更好地优化MySQL性能。 一、数据库设计 数据库设计是优化查询性能的关键,以下是一些...
    99+
    2023-09-03
    数据库 mysql java
  • MySQL 百万级数据的4种查询优化方式
    目录一.limit越往后越慢的原因二.百万数据模拟1、创建员工表和部门表,编写存储过程插数据2.执行存储过程三.4种查询方式1.普通limit分页2.使用索引覆盖+子查询优化3.起始位置重定义4,降级策略(百度的做法...
    99+
    2022-05-28
    MySQL 查询优化 MySQL 百万级数据优化
  • 怎么样优化mysql千万级数据分页查询性能
    本文主要给大家简单讲讲怎么样优化mysql千万级数据分页查询性能,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望怎么样优化mysql千万级数据分页查询性能这篇...
    99+
    2022-10-18
  • MySQL百万级数据大分页查询优化的实现
    目录一、MySQL分页起点越大查询速度越慢二、 limit大分页问题的性能优化方法(1)利用表的覆盖索引来加速分页查询(2)用上次分页的最大id优化三、MySQL百万数据快速生成3....
    99+
    2022-11-12
  • 30个mysql千万级大数据SQL查询优化技巧详解
    1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导...
    99+
    2022-10-18
  • MySQL千万级大数据SQL查询优化知识点有哪些
    这篇文章给大家分享的是有关MySQL千万级大数据SQL查询优化知识点有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 wh...
    99+
    2022-10-18
  • MySQL数据库千万级数据查询和存储的示例分析
    这篇文章主要介绍MySQL数据库千万级数据查询和存储的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!百万级数据处理方案数据存储结构设计表字段设计表字段 not null,因为 null 值很难查询优化且占用额...
    99+
    2023-06-15
  • MySQL单表千万级数据处理的思路分享
    目录项目背景改进思路观察数据特征多进程处理思路总结数据处理技巧项目背景 在处理过程中,今天上午需要更新A字段,下午爬虫组完成了规格书或图片的爬取又需要更新图片和规格书字段,由于单表千万级深度翻页会导致处理速度越来越慢...
    99+
    2022-05-20
    MySQL 单表数据处理 MySQL 千万级数据处理
  • MySQL千万级数据的大表优化解决方案
    目录1.数据库设计和表创建时就要考虑性能设计表时要注意:索引简言之就是使用合适的数据类型,选择合适的索引引擎2.sql的编写需要注意优化3.分区分区的好处是:分区的限制和缺点:分区的类型:4.分表5.分库mysql数据库...
    99+
    2022-11-20
    mysql千万级数据 mysql优化
  • mysql千万级别的数据使用count(*)查询比较慢怎么解决?
    当MySQL中的数据量达到千万级别时,使用COUNT()查询可能会变得比较慢。这是因为COUNT()会扫描整个表并计算匹配的行数,对于大表来说,这个过程可能会非常耗时。 在上图中查询一千三百多万...
    99+
    2023-09-24
    mysql 数据库 mysql千万级别数据
  • mysql千万级数据量根据索引优化查询速度的实现
    (一)索引的作用 索引通俗来讲就相当于书的目录,当我们根据条件查询的时候,没有索引,便需要全表扫描,数据量少还可以,一旦数据量超过百万甚至千万,一条查询sql执行往往需要几十秒甚至更...
    99+
    2022-11-11
  • 千万级oracle数据表定时同步到mysql表的方案
    1:业务背景 第三方系统提供了一张oracle视图,该视图有六千多万条数据,后续每月会产生三百万条数据的数据。需要每天将数据定时同步到自己系统的mysql表中。 (注:我们系统与外界系统访问都要经过一个中间系统的跳转才行。流程如下: 我们系...
    99+
    2023-09-16
    oracle mysql 数据库
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作