分页查询千万级数据慢

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/468831.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python爬取天气数据山东_Python的学习《山东省各城市天气爬取》

Pythonscrapy爬取山东各城市天气预报1、在命令提示符环境使用pip install scrapy命令安装Python扩展库scrapy,详见Python使用Scrapy爬虫框架爬取天涯社区小说“大宗师”全文2、使用下图中的命令创建爬虫项目3、进入爬虫项目文件夹,执行下面的命令创建爬虫…

Data-structures-and-algorithms-interview-questions-and-their-solutions

https://techiedelight.quora.com/500-Data-structures-and-algorithms-interview-questions-and-their-solutions转载于:https://www.cnblogs.com/zengkefu/p/6724312.html

机器人循迹小车资料

前言 我记得在大学的时候,参加电子比赛,我们有一个题目是平衡小车项目,那个对基础要求还是比较高的,总结了一些平衡车机器的资料,希望对大家有帮助。 正文 关注公众号,回复【机器人资料】获取

单片机实现环形队列_稀疏数组和队列(二)

队列的介绍队列以一种先入先出(FIFO)的线性表,还有一种先入后出的线性表(FILO)叫做栈。教科书上有明确的定义与描述。类似于现实中排队时的队列(队尾进,队头出),队列只在线性表两端进行操作,插入元素的一端称为表尾,删…

draw graph

http://www.icl.pku.edu.cn/member/yujs/bsdfiles/html/mpost.htmlUNIX下绘图面面观http://www.tug.org/metapost.htmlhttp://www.python-course.eu/finite_state_machine.phphttp://www.hahack.com/tools/pgftikz-resources/http://www.bubuko.com/infodetail-2002658.htmlhtt…

漫画-Linux中断子系统综述

1、中断引发的面试教训2、什么是中断?中断: (英语:Interrupt)指当出现需要时,CPU暂时停止当前程序的执行转而执行处理新情况的程序和执行过程。即在程序运行过程中,系统出现了一个必须由CPU立即…

创业究竟有多难?

前几天跟我的一个前同事Y聊天,Y跟我说他们的项目终于拿到了500万的融资,还给我们几个关系好的发了他签约时的照片,照片中的他充满了喜悦与期待,我们好几个关系不错的都知道这些年的他都经历了什么,也许用坎坷来形容都不…

SQL强化(二) 在Oracle 中写代码

一 : 关于查询中的转换 -- 字符串转换 一 : decode 函数 转换 SELECT DECODE ( PROTYPE.PRO_TYPE_DATE, L, 长, m, 短, 默认值 )FROM PROTYPE -- 字符串转换 二 : case 转换 SELECT T1.PRO_TYPE_ID, T1.PRO_TYPE_NAME, CASE T1.PRO_TYPE_DATEWHEN S THEN 短WHEN L THEN 长EL…

vue 非es6 写法怎么按须加载_Vue源码必学指南:flow(语法检查)以及rollup(模板打包)...

点击上方蓝色字关注我们~一、前言虽然 Vue3 已经公开了代码,但是Vue3.0还处于开发阶段,直接上手使用Typescript是不合适的 , 对于前端的老手是不错的选择, 但是如果没有研究源码经验的开发者还是建议使用完善, 成熟的源码进行入手. 而 Vue 2.x 中使用的 flow 是一个…

漫画|创业到底有多难?

我有一群同事,我们一起经历了一个产品从无到有的过程,从开始的斗志满满到最后跟老板的不欢而散,其中的辛酸苦楚也许只能我们自己能体味,在这过程中,我们共同经历过的事情,有快乐的,悲伤的&#…

【LeetCode】053. Maximum Subarray

题目: Find the contiguous subarray within an array (containing at least one number) which has the largest sum. For example, given the array [-2,1,-3,4,-1,2,1,-5,4],the contiguous subarray [4,-1,2,1] has the largest sum 6. 题解: 遍历所…

python怎么数据归一化_基于数据归一化以及Python实现方式

数据归一化:数据的标准化是将数据按比例缩放,使之落入一个小的特定区间,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。为什么要做归一化:1)加快梯度下降求最…

Android面试总结经

自上周怒辞职以后,就開始苦逼的各种面试生涯,生活全然靠私活来接济,时有时没有,真难。还能快乐的玩耍吗。最多一天面试了5家,哎感觉都是不急招人,各种等待通知。好不easy等来一家。还克扣了薪资&#xff0c…

生成step文件_利用opencv给彦女王生成一副蒙太奇画像

大家好呀,前两天烈阳天道1上映了,不知道大家看没看呢,里面还有一小段彦穿越虫洞与猴哥相遇的画面,彦女王啊啊啊~~所以我去网上爬了二百来张我大学的风景画,然后找了以前存的彦女王的图片,生成了一幅蒙太奇画…

浪漫情人节|C语言画心型

1.前言新年第一天上班,先祝大家新年快乐,巧的是,今天刚好又是情人节,所以想了下用C实现画心形符号~过年的时候,跟我表哥去接新娘,实地看了下,如果一个汉字内心没有点浪漫的细胞,很难…

CS190.1x Scalable Machine Learning

这门课是CS100.1x的后续课,看课程名字就知道这门课主要讲机器学习。难度也会比上一门课大一点。如果你对这门课感兴趣,可以看看我这篇博客,如果对PySpark感兴趣,可以看我分析作业的博客。 Course Software Setup 这门课的环境配置…

嵩天python爬虫_我自己爬-python爬虫快速入门(一)

request库对于轻量级用户,像我一样只是准备写一个搞笑用的程序,requests是很方便的存在。安装通过pip就不说了request的几个主要方法requests.request() 构造一个请求,支撑以下各方法的基础方法requests.get() 获取HTML网页的主要方法&#x…

Linux_ACL_su

ACL ACL: 针对单一使用者, 文件, 目录进行rwx权限规范(当传统的Linux权限无法满足时采用) 1.ACL设置技巧: getfacl(取得ACL设置目录), setfacl(设置ACL规范) setfcal [-bkRd] [{-m | -x} acl 参数] 目标文件 m: 设置后续的acl参数给文件使用 x: 删除后续的acl参数 b: 移除…

./4.sh: No such file or directory

sh push到目标板后提示出错 #!/bin/bash echo "ladjfaosdjfoia"头bin/bash 我们要看,sh在哪里 130|rk3399_idpad:/data # which sh /system/bin/sh rk3399_idpad:/data # 所以上面的代码应该写成 #!/system/bin/sh echo "ladjfaosdjfoia"修…

Spring总结四:IOC和DI 注解方式

首先我们要了解注解和xml配置的区别: 作用一样,但是注解写在Bean的上方来代替我们之前在xml文件中所做的bean配置,也就是说我们使用了注解的方式,就不用再xml里面进行配置了,相对来说注解方式更为简便。 IOC获取对象注…