mysql分页查询所有数据库_MySQL 数据库 分页查询/聚合查询

引言

在本篇博客简单介绍一下分页查询以及聚合查询简单操做。html

分页查询

在MySQL中,分页查询通常都是使用limit子句实现,limit子句声明以下:mysql

SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset

LIMIT子句能够被用于指定 SELECT 语句返回的记录数。需注意如下几点:web

一、第一个参数指定第一个返回记录行的偏移量sql

二、第二个参数指定返回记录行的最大数目数据库

三、若是只给定一个参数:它表示返回最大的记录行数目并发

四、第二个参数为 -1 表示检索从某一个偏移量到记录集的结束全部的记录行分布式

五、初始记录行的偏移量是0(而不是 1)svg

下面是一个应用实例:函数

select * from orders where type=8 limit 1000,10;

该条语句将会从表 orders 中查询第1000条数据以后的10条数据,也就是第1001条到第1010条数据。高并发

数据表中的记录默认使用主键(通常为id)排序,上面的结果至关于:

select * from orders where type=8 order by id limit 10000,10;

使用子查询优化

这种方式先定位偏移位置的 id,而后日后查询,这种方式适用于 id 递增的状况。

select * from orders where type=8 limit 100000,1;

select id from orders where type=8 limit 100000,1;

select * from orders where type=8 and

id>=(select id from orders where type=8 limit 100000,1)

limit 100;

select * from orders where type=8 limit 100000,100;

针对上面的查询须要注意:

一、比较第1条语句和第2条语句:使用 select id 代替 select * 速度增长了3倍;

二、比较第2条语句和第3条语句:速度相差几十毫秒;

三、比较第3条语句和第4条语句:得益于 select id 速度增长,第3条语句查询速度增长了3倍,这种方式相较于原始通常的查询方法,将会增快数倍。

使用 id 限定优化

这种方式假设数据表的id是连续递增的,则咱们根据查询的页数和查询的记录数能够算出查询的id的范围,可使用 id between and 来查询:

select * from orders where type=2

and id between 1000000 and 1000100 limit 100;

还能够有另一种写法:

select * from orders where id >= 1000001 limit 100;

固然还可使用 in 的方式来进行查询,这种方式常常用在多表关联的时候进行查询,使用其余表查询的id集合,来进行查询:

select * from orders where id in

(select order_id from trade_2 where goods = 'pen')

limit 100;

这种 in 查询的方式要注意:某些 mysql 版本不支持在 in 子句中使用 limit。

关于数据表的id说明

通常状况下,在数据库中创建表的时候,每一张表强制添加 id 递增字段,这样更方便咱们查询数据。

若是数据量很大,好比像订单这类,通常会推荐进行分库分表。这个时候 id 就不建议做为惟一标识了,而应该使用分布式的高并发惟一 id 生成器来生成,并在数据表中使用另外的字段来存储这个惟一标识。

首先使用范围查询定位 id (或者索引),而后再使用索引进行定位数据,即先 select id,而后在 select *;这样查询的速度将会提高好几倍。

聚合查询

也就是组函数,在一个行的集合(一组行)上进行操做,对每一个组给一个结果。

经常使用的组函数:

函数

说明

COUNT

统计行的数量

SUM

计算某一列的合计值,该列必须为数值类型

AVG

计算某一列的平均值,该列必须为数值类型

MAX

计算某一列的最大值

MIN

计算某一列的最小值

一、count函数

count(*):返回表中知足where条件的行的数量

select count(*) from salary_tab where salary='1000';

select count(*) from salary_tab;  #没有条件,默认统计表数据行数

count(列):返回列值非空的行的数量

select count(salary) from salary_tab;

count(distinct 列):返回列值非空的、而且列值不重复的行的数量

select count(distinct salary) from salary_tab;

count(expr):根据表达式统计数据

select UNIT as '单位',

COUNT(TO_DAYS(DATE)=TO_DAYS(NOW()) or null) as '今日统计',

COUNT(YEAR(DATE)=YEAR(NOW()) or null) as '今年统计'

from v_jjd

group by JJDW;

二、max和min函数—统计列中的最大最小值

select max(salary) from salary_tab;

select min(salary) from salary_tab;

三、sum和avg函数—求和与求平均

select sum(salary) from salary_tab;

select avg(salary) from salary_tab;

select avg(ifnull(salary,0)) from salary_tab;

注意:要想列值为NULL的行也参与组函数的计算,必须使用IFNULL函数对NULL值作转换。

参考

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

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

相关文章

阿里云高级技术专家白常明:边缘云的技术挑战和应用创新

随着5G商用周期的开始与新基建的发展, 5G边缘计算带动并赋能数字化行业,逐渐形成了预期可观的产业规模。5G周期内,直接和间接带动产业规模就高达万亿级,在如此巨大的市场规模下,会有越来越多的行业具备数字化转型的技术…

饿了么技术往事(中)

在上一篇文章《饿了么技术往事(上)》中,我介绍了饿了么最早期 All in One 阶段的架构,以及第二阶段业务系统拆分与团队运营的一些思考,以及我对于架构师职责的感受,接下来我会详细介绍饿了么全面服务化的架…

高质量的缺陷分析:让自己少写 bug

简介: 缺陷分析做得好,bug 写得少。阿里资深技术专家和你分享如何进行高质量的缺陷分析,总结了 5 个要点,通过缺陷分析消除开发中的各种盲点,打造一个学习型的团队。 作者 | 嵩华 导读:缺陷分析做得好&am…

python 小海龟鼠标画图_Python小海龟画图

import turtle运动命令forward(d) 向前移动d长度backward(d) 向后移动d长度right(d) 向右移动d长度left(d) 向左一定d长度goto(x,y) 移动到坐标为(x,y)的位置speed(speed) 笔划绘制的速度1-10笔画控制命令up() 笔画抬起,在移动的时候不会绘图down() 笔画落下,下次绘图时则有效s…

IT、OT融合趋势下,西门子举办“第一届西门子工业边缘生态大会”

近日,西门子举办“第一届西门子工业边缘生态大会”,以“聚势边缘 共赋未来”为主题,来自全国机构专家、工业制造商、系统集成商、互联网伙伴、软件和大数据伙伴、媒体等生态伙伴深入交流未来工业的发展方向。 “边缘层融合IT和OT层&#xff0…

T级内存,创建效率提升10倍以上,阿里云 KVM异构虚拟机启动时间优化实践

简介: 阿里云工程师李伟男和郭成在 KVM Forum 2020 上详细介绍了阿里云 KVM 虚拟机创建及启动时间优化的具体技术实现,本文根据其演讲整理而成。 对于云计算用户来说,过长的 KVM 虚拟机创建及启动时间非常影响体验,特别是超大规格…

Android网络性能监控方案

背景 移动互联网时代,移动端极大部分业务都需要通过App和Server之间的数据交互来实现,所以大部分App提供的业务功能都需要使用网络请求。如果因为网络请求慢或者请求失败,导致用户无法顺畅的使用业务功能,会对用户体验造成极大影…

打破云原生时代存储瓶颈,SmartX 发布 K8s 云原生存储 IOMesh

编辑 | 宋 慧 供稿 | SmartX 头图 | 付费下载于视觉中国 专业超融合与分布式存储产品与解决方案提供商 SmartX 发布为 Kubernetes 设计和开发的云原生存储产品 IOMesh 预览版(以下简称“IOMesh”),加速数据库等有状态应用的容器化进程。 IO…

flume获取mysql日志到hdfs_Hadoop实战:Flume输入日志到HDFS报错解决

使用Flume把日志存储到HDFS,在启动时报错如下:2017-06-16 08:58:32,634 (conf-file-poller-0) [ERROR - org.apache.flume.node.PollingPropertiesFileConfigurationProvider$FileWatcherRunnable.run(PollingPropertiesFileConfigurationProvider.java:…

全球边缘计算大会:阿里云资深技术专家李克畅谈边缘计算的技术趋势与挑战

2020年11月7日,以“5G边缘计算“为主题的全球边缘计算大会在北京新世界大酒店成功召开,作为业内首个专门为边缘计算人打造的行业盛会,此次活动现场共有超过600来自政、产、学、研、用各界的企业负责人、权威技术专家、通信科技从业者、边缘计…

《科学:无尽的前沿》分享会在京举办,助力中国企业打造“科研的应许之地”

当今世界百年未有之大变局加速演进,疫情影响广泛深远,不稳定性不确定性明显增加。科技创新成为国际战略博弈的主要战场,围绕科技制高点的竞争空前激烈。 6月19日,远望智库、中信出版集团联合举办了新书《科学:无尽的前…

mysql 5.1 db2i_DB2 9.5.0.0升级至9.5.0.9(小版本升级)

0.升级前DB2版本[db2inst1xifenfei ~]$ db2levelDB21085I Instance "db2inst1" uses "32" bits and DB2 code release "SQL09050"with level identifier "03010107".Informational tokens are "DB2 v9.5.0.0", "s07100…

OpenYurt 深度解读:如何构建 Kubernetes 原生云边高效协同网络?

作者 | 郑超 导读:OpenYurt 是阿里巴巴开源的云边协同一体化架构,与同类开源方案相比,OpenYurt 拥有可实现边缘计算全场景覆盖的能力。在之前的一篇文章中,我们介绍了 OpenYurt 是如何在弱网和断网场景下实现边缘自治的。本文作为…

Dubbo-go 源码笔记(二)客户端调用过程

作者 | 李志信 导读:有了上一篇文章《Dubbo-go 源码笔记(一)Server 端开启服务过程》的铺垫,可以类比客户端启动于服务端的启动过程。其中最大的区别是服务端通过 zk 注册服务,发布自己的ivkURL并订阅事件开启监听&…

云原生时代需要什么样的存储系统?

导读:本文介绍了目前云原生环境下,支持有状态应用的几种典型存储方案的特点,并对市场主流的几个云原生存储产品实际测试性能进行对比。 现状 当前,云原生已经成为应用开发者在选择架构设计时的首选。云原生让应用开发者可以将所有…

mysql管理器源码_一个HelloWorld版的MySQL数据库管理器的设计与实现(源码)

2011年,实习期间写了一个简单的数据库管理器。今天,特意整理了下,分享给大家。有兴趣的同学,可以下载源码,瞧瞧。源码只有4个类:LoginGUI,DatabaseGUI,Record,MySQLModel。1.LoginGUI该类就是一个简单的登录…

我们身边的网络流量

作者:qinglianghu 一.网络流量中的善与恶 和我们一起在网上冲浪的不仅有你身边的亲朋好友,还有栖息在互联网上密密麻麻的网络爬虫。差不多每5次的网络浏览里,有2次是"虚假"的网络爬虫产生的。这些栖息在互联网上的爬虫也是有&quo…

58.3万笔/秒!看阿里的黑科技

简介: 11月11日0点刚过26秒,天猫双11的订单创建峰值就达到58.3万笔/秒,阿里云又一次扛住全球最大规模流量洪峰!58.3万笔/秒,这一数字是2009年第一次天猫双11的1457倍。数字的背后,隐藏着阿里巴巴很多不为人…

60+ 安全厂商的选择,为何 TA 一直坚持做威胁情报供应商?

威胁情报能给企业安全管理人员提供全面、准确、可执行和决策的信息,帮助企业提高应对安全威胁的效率,提升脆弱性管理和风险控制能力,了解其所处的威胁环境并用于决策。可以与企业已有的网络安全架构、产品、流程相整合,应用到 APT…

java方法重写_Java方法重写注意事项

1.重写方法的方法名和参数列表要和被重写方法一致。2.在 java 1.4版本以前,重写方法的返回值类型被要求必须与被重写方法一致,但是在java 5.0中放宽了这一个限制,添加了对协变返回类型的支持,在重写的时候,重写方法的返…