当前位置:网站首页>几种常见SQL分页方式效率比较
几种常见SQL分页方式效率比较
2022-08-06 00:33:00 【51CTO】
分页很重要,面试会遇到。不妨再回顾总结一下:
一:创建测试环境,(插入100万条数据大概耗时5分钟)。
二:--创建测试表
三 --1万记录集
四:.几种典型的分页sql,下面例子是每页50条,198*50=9900,取第199页数据。
四:分别在1万,10万(取1990页),100(取19900页)记录集下测试。
测试sql:
1万:基本感觉不到差异。
10万:

100万:

五:结论:
1.max/top,ROW_NUMBER()都是比较不错的分页方法。相比ROW_NUMBER()只支持sql2005及以上版本,max/top有更好的可移植性,能同时适用于sql2000,access。
2.not exists感觉是要比not in效率高一点点。
3.ROW_NUMBER()的3种不同写法效率看起来差不多。
4.ROW_NUMBER() 的变体基于我这个测试效率实在不好。
PS.上面的分页排序都是基于自增字段id。测试环境还提供了int,nvarchar,datetime类型字段,也可以试试。不过对于非主键没索引的大数据量排序效率应该是很不理想的。
六:简单将ROWNUMBER,max/top的方式封装到存储过程。
ROWNUMBER():
Max/top:(简单写了下,需要满足主键字段名称就是"id")
调用:
边栏推荐
猜你喜欢

Kubernetes网络模型

Kubernetes implements grayscale and blue-green releases

华为分析&联运活动,助您提升游戏总体付费

物理 NFT 有什么特别之处?

Day4: Multiple-choice questions required for the interview

harbor-offline-installer harbor安装

Uni - app from scratch - page communications (3)

Privacy Computing Basic Component Series - Obfuscation Circuit

解决mysql语句MAX()函数中出现的问题

How to align the WeChat applet capsule button?
随机推荐
将多维数组变成一维数组及数组转置
安全测试-AndroidManifest.xml元素分析(1)
Horizontal Federated Learning - Gradient Safe Aggregation 1
嵌入式系统驱动初级【7】——内核内存管理
MySQL:索引的基础知识
Idea如何查看代码注释 修改者?
Is it safe to choose a mobile phone application for a securities account?
redis面试题
【LeetCode】611.有效三角形的个数
Playing air guitar in VR?Developer: Gesture optimization has skills
2022-08-05 第六小组 瞒春 学习笔记
Day4:面试必考选择题
数据库管理系统中负责查询操作的数据库语言叫什么
横向联邦学习-梯度安全聚合1
【PMP学习笔记】第4章 项目整合管理
Kubernetes implements grayscale and blue-green releases
Oracle学习笔记索引执行计划中的关键字(十三)
Find My资讯|新系统苹果Find My不再显示AirTag电池电量
『牛客|每日一题』N皇后问题
Day6:面试必考选择题