一个SQL分页查询的优化问题
A表是博客信息表,里面字段有BlogId,UserId,Title,BlogText等信息
B表是注册用户表,里面字段有UserId,Password,LogonName,Icon等信息
两个表的数据都在100W左右
现在页面分页查询博客表的记录,也要取出来用户表中的LogonName和Icon。
LogonName有时候在某些时候会做为条件。
现在查询语句如下
SELECT BlogId,UserId,Title, BlogText, Icon
FROM
(SELECT
ROW_NUMBER() OVER (order by b.BlogId) as RowNumber,
b.*, u.Icon
FROM BlogInfo AS b
inner join UserInfo u On b.UserId=u.UserId
where
//某些情况下有这个条件
u.LogonName IN(参数)
) t
where rownumber>500000 and rownumber<500010
这样写的话,结果基本不能出来
如果不用Inner Join的话,时间一般就是0ms
这个地方为什么会这样?
怎么样去查询最好?
B表是注册用户表,里面字段有UserId,Password,LogonName,Icon等信息
两个表的数据都在100W左右
现在页面分页查询博客表的记录,也要取出来用户表中的LogonName和Icon。
LogonName有时候在某些时候会做为条件。
现在查询语句如下
SELECT BlogId,UserId,Title, BlogText, Icon
FROM
(SELECT
ROW_NUMBER() OVER (order by b.BlogId) as RowNumber,
b.*, u.Icon
FROM BlogInfo AS b
inner join UserInfo u On b.UserId=u.UserId
where
//某些情况下有这个条件
u.LogonName IN(参数)
) t
where rownumber>500000 and rownumber<500010
这样写的话,结果基本不能出来
如果不用Inner Join的话,时间一般就是0ms
这个地方为什么会这样?
怎么样去查询最好?
...全文
相关推荐
完美解决MybatisPlus插件分页查询不起作用总是查询全部数据问题
主要介绍了解决MybatisPlus插件分页查询不起作用总是查询全部数据问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
java语言的分页查询功能(mysql和sql server)
java语言编写的分页功能。很实用的查询功能,不基于任何框架的限制。
解决Oracle分页查询中排序与效率问题
解决Oracle分页查询中排序与效率问题解决Oracle分页查询中排序与效率问题解决Oracle分页查询中排序与效率问题解决Oracle分页查询中排序与效率问题
分页查询sql单条
区别于一般的代码,比较简略,代码优化性高,望采纳,物超所值。
SQL分页查询方言类库 通过调用相关API,可快速将一个普通SQL转换为一个特定数据库的计数(COUNT)SQL或分页查询SQL
SQL分页查询方言类库。通过调用相关API,可快速将一个普通SQL转换为一个特定数据库的计数(COUNT)SQL或分页查询SQL。


应用实例
