sql:sqlite:服务器端分页

时间:2010-10-28 07:06:57

标签: sql sqlite cgi

我有一个客户端与服务器程序(使用sqlite3作为存储)进行通信,需要支持分页。我正在考虑如何实现这一点。一种方法:

1) user request page 1
  a. execute query from sqlite3
  b. return the first page range items to client

2) user request page N
  a. execute query from sqlite3
  b. return the N page range itmes to client

因此,在我的方法中,每次用户请求数据时,我都会重新发出查询并获取指定的元素,这似乎浪费时间......(比较缓存所有项目一次,只是给用户要求的部分,但是这种方法比较复杂,因为我需要超时缓存 - 用户正在使用浏览器我不知道用户何时登录并且缓存无用)

有更好的想法吗?

1 个答案:

答案 0 :(得分:5)

也许您可以使用SQLite的LIMIT… OFFET…功能。

取自the select syntax documentation

  

LIMIT子句可以指定由逗号分隔的两个标量表达式,而不是单独的OFFSET子句。在这种情况下,第一个表达式用作OFFSET表达式,第二个表达式用作LIMIT表达式。这是违反直觉的,因为当使用OFFSET子句时,两个表达式中的第二个是OFFSET,第一个是LIMIT。这是故意的 - 它最大化了与其他SQL数据库系统的兼容性。