I had the exact same problem myself. Given the fact that you want to collect a large amount of this data and not a specific set of 30 you’ll be probably running a loop and incrementing the offset by 30.
So what you can do instead is:
- Hold the last id of a set of data(30) (e.g. lastId = 530)
- Add the condition
WHERE id > lastId limit 0,30
So you can always have a ZERO offset. You will be amazed by the performance improvement.