select * from table limt 2,1
表示查询时2是偏移量即从第二条数据开始查询,1代表的查询的条数即查询一条数据,这条SQL就表示查询的是第三条数据。
select * from table limit 4 offset 3
这就是仅适用limit有些区别,limit后面跟的数字指的是查询的条数,offset后面跟的是偏移量,这条SQL就表示查询的是第4、5、6、7条数据
这两种用法所涉及到的偏移量(第一条中的2,第二条中的3)都不包括自身,也就是说偏移量是2就从第三条数据开始查起。
在使用limit查询的时候,偏移量越小查询的速度越快,所以在只是用limit是偏移量尽量小,当偏移量较大时,可以使用子查询来进行优化(变相的使偏移量变小)
如:select * from table limit 1000,10;
可以使用子查询select * from user where uid >=( select uid from user order by uid limit 10000,1 ) limit 10;
补充:
补充一点批量插入的方法:
一般工作中批量插入要比一条一条插入性能提升很多,首先就是组装一个array数组,将需要插入的数据add进数组中,然后根据你每批次插入数据的数量和数组总量确定需要几次插入操作,然后组装你每次插入所需要的数组。
SQL处理,insert into table (column1,column2...) values <foreach collection="list" item="item" index="index" separator=",">(1,2...)</foreach>
useGeneratedKeys="true" keyProperty="id" 使用这两个标签确保自增主键id在批量插入时可以自动添加id。