将 order by 替换为空串,只是为了查询总记录数 totalRow 时性能更好点,因为 select count(*) 去掉 order by 对最终结果是没有影响的
jfinal 2.3 会将这个优化去掉,一是因为不同数据库,不同的 order by 用法很灵活,正则表达式去除order by 子句并不可靠,二是因为在对 mysql 的 select count(*) ... order by ... 测试时表明,是否去除 order by 对性能几乎没有影响,数据库应该是对此自行做了优化
@JFinal DbPro类里面的doPaginate方法,会拼接"select count(*)"和参数sqlExceptSelect,sqlExceptSelect参数就是"from (select a,row_number() over(order by b) c from table) where c=1 order by a"
jfinal 2.3 会将这个优化去掉,一是因为不同数据库,不同的 order by 用法很灵活,正则表达式去除order by 子句并不可靠,二是因为在对 mysql 的 select count(*) ... order by ... 测试时表明,是否去除 order by 对性能几乎没有影响,数据库应该是对此自行做了优化