如果查询结果需要分页,从效率上讲,下面的效率应该比较高(粉红色表示需要根据实际情况填充的地方)
三类数据库中进行分页查询的高效率方法(目前来看):
Oracle: SELECT * FROM ( SELECT MY_TABLE.*,ROWNUM AS MY_ROWNUM FROM ( /** 括号里写实际的需要查询的SQL语句**/ ) AS MY_TABLE WHERE ROWNUM <=200/**这里是一页中的最后一条记录**/ ) WHERE MY_ROWNUM>=10 /**这里是一页中的第一条记录**/
SQLServer: SELECT * FROM ( SELECT TOP 页面容量 * FROM ( SELECT TOP 页面容量*当前页码 * FROM 表 WHERE 条件 ORDER BY 字段A ASC )AS TEMPTABLE1 ORDER BY 字段A DESC ) AS TEMPTABLE2 ORDER BY 字段A ASC
MYSQL: SELECT 语句 LIMIT 页面的第一条记录-1,页面容量
|