关于分页中总记录数的处置

关于分页中总记录数的处理

  在分页查询时通常需要显示总记录数,虽然只是一个数字,但是由于可能会全表统计,因此对查询的性能影响至关重要,现对其进行总结:

  1、每次查询均select count,该方式数据的准确性最高,但是每次count,性能最低;

  2、在会话期间只进行一次select count,然后缓存,该方式数据可能不准确,即可能漏数据导致部分新增数据无法被浏览到,但是可以避免后续访问的count操作;

  3、不显示总记录数,通过每次查询时多查一条,判断是否是最后一页(最后一页是否可点击通常是通过总记录数除以页大小计算出总页数进行控制),该方式不存在漏数据和查询性能的问题,但是用户友好性会降低,在到最后一页前,用户无法得知总共有多少页;

  4、每插入、删除一条数据就在另一张表,或者缓存系统等更新一下总记录数,这种方式通常只用在统计整个表的总记录数时有用,如果带有查询条件则基本无法使用,具有较大的应用场景局限性。