I’ve used expo SQLite before for offline-first apps and it works fine for moderate datasets, but if you’re talking about really big data, it can get tricky. SQLite on mobile isn’t designed for massive storage or heavy queries like you’d expect in a full database engine. Deleting rows usually doesn’t shrink the physical file size immediately (vacuuming is needed). TEXT fields don’t really have hard limits, but performance can drop if you store huge chunks of data in them.
For me, I had to rethink the approach — instead of trying to store everything locally, I split what was critical for offline use vs. what could sync from the server later. If your app is heading into big data analytics territory, you might want to check out how larger systems handle storage and processing.
It gave me some perspective on how big data systems scale, even though I ended up sticking with SQLite for my smaller use case.