mysql分页技术中用到的关键字
mysql数据库分页用limit关键字,它后面跟两个参数:startIndex和pageSize。如:请求第2页,每页10条数据,departmentId代表部门编码,以科研部的员工为例,假设其部门编码为1001Java code:
int cpage = 2;int pageSize = 10;int startIndex = (cpage-1)*pageSize;String sql = "select * from deployees from departmentid='1001' limit "+startIndex+","+pageSize;
如何优化Mysql千万级快速分页
两步。
1,垂直分表。拆表,按你的各个应用场景,如微信登录、qq登录,每个应用场景一张表,这张表的字段比原表少,仅仅将该场景用到的字段存进去。
2,水平分表。经过第一部后,将每个子表进行水平拆分,。具体方法,比如手机号登录场景的子表,可按手机号末尾一位取模,再分为10个子表,每个子表数据量百万级,mysql性能差不多可以忍受。对了,别忘建个索引。
总结一下,要达到的目的无非两个:瘦表,单表数据量级不要超过百万级
mysql分页怎么越到后面越慢
因为offset limit是本质上就是服务端的scan啊,查询最后一条就是scan了1000万数据,哪怕scan的是索引也要scan几十万个磁盘块,当然慢
如果是导数据的话考虑下游标
如果是界面上展示的话首先可以考虑优化查询场景,因为很少有1000w条数据分页展示的情况,优化后一般顶天1w页也就是10w左右数据,合理设计和命中索引的情况下offset limit还是很快的
ASP+mysql海量数据的分页优化
要把connection设置为使用本地游标定位方式,mysql的server端不支持recordset的recordcount属性。connstr="****
"set conn=server.createibject("ADODB.Connection"
)conn.Open connstrconn.CursorLocation=3 'adUseClient=3,而默认为adUseServer(=2)set rs=server.createobject("ADODB.recordset"
)sql="select ....."rs.open sql,conn,1,1'这时候就可以用recordcount pagecount了rs.pagesize=10rs.absolutepage=cint(strpage)select_count=rs.recordcountselect_pagecount=rs.pagecount

