Pros and Cons of using Appsheet Databases

Good morning community.
I am writing to share my confusion on the subject of using appsheet databases; Why would anyone use these databases, which have meager limits and paying onerous additional costs, being able to use Google Sheets as a database for free, which, apart from being free, does not set us the meager limits that the appsheet database?
In case of opting for the appsheet database, what are the strategies to have apps with a lot of data under such a restrictive number of records scheme? Should we gradually incorporate automated processes into the architecture of these apps with appsheet databases to pass the data elsewhere? If yes to the above, where is the data to be freed passed to to stay within the appsheet database boundaries?
Thank you very much for answering, any information that can guide me on these issues will be welcome.
Regards, Mark.

Solved Solved
1 15 16.5K
2 ACCEPTED SOLUTIONS


@MarcosL wrote:

I am writing to share my confusion on the subject of using appsheet databases; Why would anyone use these databases, which have meager limits and paying onerous additional costs, being able to use Google Sheets as a database for free,


First,  AppSheet proprietary Databases are FREE but in their infancy, have some issues and are not ready for large apps due to limits.  They are well suited for only small-ish apps at the moment, in my opinion.  So let's set them aside.

For small, and even medium sized (tens of thousands of rows - all tables) apps, without a doubt I strongly encourage Google sheets to be used. 

So, Let's focus on SQL Databases versus Google Sheets with regards to large apps.

When apps become large, e.g. hundreds of thousands of rows OR tens of thousands in several tables,  performance starts to become a concern.  All apps, regardless of datasource, will degrade in performance as they grow in data size.   I do believe with certain care taken with the structure of tables, usage of Virtual Columns,  and archival of old data,  Google sheets can serve even most large apps very well for an indefinite period of time. 

However, there is effort=cost in maintaining those Google sheets.  Virtual Columns need to be scrutinized carefully.  Archival processes need implemented and managed to reduce the size at the source (for faster loading).  Processes need to be in place when older rows need to used or reviewed.  Backup processes need to be custom built.

When using an SQL database, data reads are already optimized for fast retrieval.  But AppSheet can apply Security Filters to data read process from a database to limit the rows loaded - making reads, and subsequent server-side processing, even faster.  No archival is necessarily needed though archiving- even in a database, will make the data reads that much faster still.  While AppSheet apps using a database can read data faster,  the same effort is needed to be sure Table structures are suited for performance and VC's are used only when needed and appropriate, otherwise they kill performance.  Most databases have their own backup features.

The Differences??

It boils down to cost versus effort.

SQL Databases will cost extra but can "naturally" speed up read times.  AppSheet Security Filters can serve as a kind of archival eliminating the need for manually built archival processes.  Most db's have backup facilities eliminating the need to build those.

Google Sheets take extra care and effort to ensure best possible performance with the need for manually built processes to archive data to achieve faster read times and ensure data security with backups.  These processes will need to be maintained and updated through the life of the app.

 

I hope this helps!

View solution in original post

Here's a few other differences that I would note.  For using Appsheet db, my main concern is that there is currently no easy way to copy the data or keep a back up of the data.  This gives me the willies.  Particularly because there's also no way to easily export the AS DB to flat files or MYSQL files.   

Also, there are some oddities when using MySQL that might make Google Sheets a better choice for your data.  I haven't got definitive knowledge of this issue, but I've ran into situations where a formula to select a list of suggested records for an enum field would normally be members[id], but for MySQL you need to use SPLIT(ORDERBY(members[id], [name]), ",") to get the same outcome.

Another thing to watch for is mixing and matching data sources.  Records from one database cannot be referenced in records of another database, it seems, or at least not when one is MySQL and the other is not.  I have some projects that use MYSQL and PHP for some apps and AppSheet for another, and I thought the AS DB might be a nice place to store action flags and other things that are specific to my AS app and pointless for my PHP apps.  No such luck.  The references need to share a database (or maybe a db type).  

Finally, I've found that AS doesn't handle MySQL databases with nulls as I would expect.  For example, if you have a date field where the default value is null, you're going to have trouble getting an AS date field to behave as expected.  And whenever you regenerate the table structure within AS, some of these problems will need re-fixing.  I've learned to avoid using null as a default value for my MySQL tables, but, of course, that causes different limitations when working in non-AS apps.  

Cheers!

View solution in original post

15 REPLIES 15
Top Labels in this Space