Giving the outside world access to your internal database is one of the biggest no-nos of all time! Hackers will love you, and ruin you.
Create a snapshot of your database contents at regular intervals, upload it, and provide a way for outsiders to view that snapshot, with a note saying last updated on...
You could create a total extract each time you wish to post an update, but that might be a big, time consuming file.
You could reduce the size of the upload by extracting all data from a given date forward to the current date, and at upload time delete all data from the same date forward to the current date, it's just a couple of extra lines of sql. You could move the start date forward at regular intervals, say the first day of the week or month or every six months, whatever suits you.
I update a site where visitors are only interested in one of two types of data extracted from the main offline database. So all the joins are done offline when the data is extracted to produce a pair of views, and then I have just two tables for them to query separately. Which simplifies the querying interface a great deal!