Since we're talking about large data file, I would consider the option to send only the rows needed to be updated or inserted. To do this, I would store in the original db (server side) the rows already inserted or updated at the client's side. This would require a unique ID for each device of course and be even better, store the timestamp of insertions/updates.