I found this:
SELECT column FROM table
LIMIT N OFFSET offset
Increment offset by index*N in the loop to fetch N records at a time.
But the remaining question is how do I do this using kamailio’s MySQL driver? Raw query?
Allen
From: Allen
Zhang
Sent: Thursday, 5 June 2014 12:19 p.m.
To: 'sr-users@lists.sip-router.org'
Subject: MySQL query result pagination
Hi,
When an user does a REGISTER and has a large number of msilo messages stored, say 7k, kamailio server easily runs out of private memory when trying to allocate memory to the result set. I know I can set a max on the messages a user can
store, but I’d like to support a crazy number like 7k messages.
I’m trying to introduce paging to the query. So that I can process N number of results at one time.
I can’t find an easy way of doing this with the current MySQL driver. The
db_mysql_query()
function doesn’t have built-in paging and with this function it’s not easy to build a complex query like this:
Select * from silo where …(the matching algorithm) AND id > lower_limit AND id < higher_limit, ordered by id.
Is there a way to do this? Or maybe I’m on the wrong track and there is already a solution to this problem?
Regards,
Allen Zhang