当需要从数据库查询的表有上万条记录的时候,一次性查询所有结果会变得很慢,特别是随着数据量的增加特别明显,这时需要使用分页查询.对于数据库分页查询,也有很多种方法和优化的点.下面简单说一下我知道的一些方法. 准备工作 为了对下面列举的一些优化进行测试,下面针对已有的一张表进行说明. 表名:order_history 描述:某个业务的订单历史表 主要字段:unsigned int id,tinyint(4) int type 字段情况:该表一共37个字段,不包含text等大型数组,最大为varcha…
先查下数据表的总条数: SELECT COUNT(id) FROM ts_translation_send_address 执行分页界SQL 查看使用时间2.210s SELECT * FROM ts_translation_send_address ORDER BY id LIMIT 2000000,10; 把sql语句优化后查询 SELECT * from ts_translation_send_address t INNER JOIN ( SELECT ID FROM ts_transla…
最优化查询代码 -- 注意:此处可能会出现 字符串过长问题,所以 必要的情况下请分段处理 set @sql1 =' SELECT * FROM ( select ROW_NUMBER() OVER(ORDER BY '排序字段' desc ) AS rownum,* from( select * from as '需要查询的内容' ) as A where 1=1' set @sql2=' ) AS Dwhere where 1=1 ' --多条件查询,判断是否字符串传进来为空,不为空则加上条件…
前提条件: 1.表的唯一索引 2.百万级数据 SQL语句: select c.* FROM ( SELECT a.logid FROM tableA a where 1 = 1 <#if phone?exists&& phone!=""> AND a.phone like "%":phone"%" </#if> ORDER BY a.create_time DESC limit :startIndex,:m…