mysql查询千万级数据越来越慢优化:

1.分表:(固定某个表存多少数量的数据:例如:一张表存100w的数据量);

2.优化sql和建立适合的索引(复合索引);

3.使用redis缓存。(redis存一份ID.然后mysql存一份ID每次插入删除的时候同步即可。查询的时候只需要从redis里面找出适合的10个ID,然后到mysql里面查询出10条)

记录即可);

4.总数要单独处理:涉及到总数操作,专门维护一个总数。(例如:新注册一个会员,总数值加1,需要总数的时候直接拿这个总数,也可以在这个表上添加了触发器并创建一个专门用来统计总行数的表

添加更新删除该表就会触发,分析条件后直接把统计表的相应字段累加,查询的时候直接读取统计表中的相应字段就可以了准确度没问题,如果有条件查询分页,那么分页表的数据就发挥不了左右)。

5.可通过定时任务去批量查询总数,例如:开启10个线程去批量计算总数,然后再各自相加即可,不过这样会导致内存(CPU)过高,而造成内存溢出。

6.修改原有界面内容,单独去查询总数,需要即去查询。也可以用ID建立一定的区间,比如查询最新的记录,每次只是查询2w条的记录。

每次只要查最新的一条记录,id是自增字段,取当前的这个id值就可以大约知道总条数了(注意:项目里并不会删除参与记录),但是这种不适合带条件的查询。

另外一种查询条数:

SELECT * FROM table WHERE id BETWEEN 1000000 AND 1000010;

如果需要查询 id 不是连续的一段,最佳的方法就是先找出 id ,然后用 in 查询

SELECT * FROM table WHERE id IN(10000, 100000, 1000000...);

使用IN这种基本就是0s级别的。

优化注意事项:

1.多个表关联的时候建议相关联的表都建立索引。

2.在order by 和where语句中的建议建立联合索引来提升查找速度。

3.分页最好别让别人看到10万条以后的数据,要不然会很慢!就算用索引。经过这样的优化,mysql到了百万级分页是个极限。

提示:

1、用的myisam还是innodb,myisam的查询速度明显比innodb快很多。

2、能不加where条件的尽量不加。

3、索引优化

(可以从业务上进行了优化,规定只查询指定时间内的数据,或者一定时间内的数据。查询所有总数数据也可以使用缓存)

转载于:https://www.cnblogs.com/liuying1995/p/6723417.html

分页查询千万级数据慢相关推荐

  1. oracle 亿级数据分页,oracle分页查询千万级优化-Oracle

    oracle分页查询千万级优化,在做比对项目时,有表是3千万多的数据,在页面做分页查询时很卡40s,反正差不多一分钟的时间,后来更了sql,优化了代码就好了很多,4s就可以了. 代码里优化是把总条数存 ...

  2. python查询千万级数据_Python批量删除mysql中千万级大量数据

    场景描述 线上mysql数据库里面有张表保存有每天的统计结果,每天有1千多万条,这是我们意想不到的,统计结果咋有这么多.运维找过来,磁盘占了200g,最后问了运营,可以只保留最近3天的,前面的数据,只 ...

  3. php超大树形分页,PHP+MySql千万级数据limit分页优化方案

    PHP+MySql千万级数据limit分页优化方案 1年前 阅读 2750 评论 0 喜欢 0 ### 原因 徒弟突然有个需求,就是他发现limit分页,页数越大之后,mysql的消耗越大,查询时间越 ...

  4. oracle不排序分页结果随机,关于ORACLE排序后分页查询出现反复数据的探讨

    关于ORACLE排序后分页查询出现重复数据的探讨 最近在帮一个同事调试BUG,有一个条BUG是这样描述的: 所有有排序功能的列表,当其中某一字段当前页面内容一致时,翻页就有误. 页码改变,列表内容不变 ...

  5. mysql临时表如何分页查询慢_数据量很大,分页查询很慢,怎么优化?

    作者:悠悠i,来源: http://uee.me/aVSnD 当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分 ...

  6. 6,ORM组件XCode(撬动千万级数据)

    为什么80%的码农都做不了架构师?>>>    有了前面的<动手>,基本上可以进行开发了.本篇我们来试试XCode的基本功功力如何,测试在单表一千万业务数据的环境下查询的 ...

  7. 排序千万级数据_MySQL 对于千万级的大表要怎么优化?我写了6000字的深度解读...

    千万级大表如何优化,这是一个很有技术含量的问题,通常我们的直觉思维都会跳转到拆分或者数据分区,在此我想做一些补充和梳理,想和大家做一些这方面的经验总结,也欢迎大家提出建议. 从一开始脑海里开始也是火光 ...

  8. 如何设计千万级数据的java对账系统之一

    本篇文章主要聊聊如何设计千万级别的对账系统.其他一些业务问题可以参看对账清分设计总概览. 目前系统运行的对账总情况:对账日交易量两千万,交易金额50亿,对账时间5分钟以内 本篇文章分两个模块 第一个模 ...

  9. 使用ShardingJDBC实现按时间维度分表轻松支撑千万级数据

    文章目录 前言 一.框架搭建 二.代码编写 最麻烦的分页查询 三.题外话 源码下载 前言 之前在公司开发的一个产品,数据量巨大,疫情期间更是单月数据量增长超过100万,我们的单机MySQL数据库查询速 ...

最新文章

  1. 【Android开发教程】一、基础概念
  2. python做电脑软件-PC端数据下载软件开发(Python)
  3. 使用ReportStudio打开cube模型创建报表出现两个最细粒度名称
  4. php5.5升级到php5.6,从php5.5.9升级到php5.6之后,相当于php5enmod?
  5. 【node】之nvm的使用
  6. 开启服务器时启动线程
  7. java歌词高亮显示滚动_js如何处理音乐播放器的歌词文件达到高亮以及滚动的效果?...
  8. docker_3 docker 部署练习
  9. 3月17日 基于特征点的RANSAC最优估计基础矩阵,稀疏光流法综述
  10. c语言死循坏的作用,c语言什么是死循环
  11. 深圳必去的50个免费景点 景色绝美
  12. DES算法的介绍和实现(转的,其实3des一样的原理就是加密解密加密而已)
  13. 国土导弹光学反狙击探测系统行业调研报告 - 市场现状分析与发展前景预测(2021-2027年)
  14. python怎么换行输入print_python中print换行的方法
  15. unix/Linux常用命令英文全称与中文解释 man ,su,ps,ls 等等
  16. 揭秘潜伏在QQ群里面的低调高收入者
  17. 《清单革命》:让大脑处理更重要的事情
  18. 什么是Richard Feynman 积分技巧
  19. 计算机二级WPS Office选择题真题第一套,计算机二级wps office考试题库,计算机二级wps office题库
  20. 联通资费大幅下降意在强奸iPhone用户

热门文章

  1. UNIX环境编程学习笔记(21)——进程管理之获取进程终止状态的 wait 和 waitpid 函数...
  2. 关于java assertion
  3. 应用框架的设计与实现学习手札系列(持续更新)
  4. Redis原理及拓展
  5. js 日期控件laydate使用
  6. init/inittab
  7. 云计算-从基础到应用架构系列-云计算的演进
  8. 深度学习之卷积神经网络 VGGNet
  9. Python 之 进程
  10. mysql中的内置函数