@samnichols I highly recommend you check @petter’s book about the app performance - I haven’t found a better source of knowledge as of today - you will find quite a lof of interesting and important stuff there - maybe when bubble will release the infrastructure update, then some things could potentially change but that’s aimed for end of month if I remember correctly.
Now back to your question
Can you show me a print screen of your table ? How many columns you have and what are the particular data types there.
Still for widgets I think I would try with separate Do a search for’s - because that will allow your app to get the data on the page load but splitted into chunks and loaded when ready - so I think it’s better to download smaller chunks over the time then try to download a huge batch into user browser and then try to mainpulate them. If you want you can even program a dedicated workflow just for data loading and use for example RG Display List command one after another via Custom events.
Then If your data table of Activities includes like 20 or 30 columns inside - I would first optimise it via satelite data concept that 's also explained in Peter’s book.
Long story short:
You have two tables: Data table and Index table (at least I like to call it that way)
Data table - can be as big as you want because you will never use it for RG’s - it’s just a data container.
Index table - it’s a performance friendly version of Data table - so it includes only data that are necessary for searches etc also you can use one text field for example to include data from different fields from Data table.
Then the Index table and the Data table are related to each other via ID so you can access the data from one to another.
In your scenario for widgets you use Index table but when user want to check details of activity you fetch that one particular id from data table and display everything.
You also have to consider data lifetime so for example you can go even further and plan Archive Table so your data concept would on the end look like this:
- Activity Search Index (for searching)
- Activity Data (for displaying details)
- Activity Data Archive (all old activities that users can access via different view and different UX)
All those tricks will help with your capacity and all of them can lead to better performance but then again if your app is successful and your user base will grow on the regular basis, despite the best possible optimisation tricks you could imagine, there might be simply a need to increase the unit amount of your bubble plan because your business is growing
Total app performance is huge mixture of what you have under the hood but on the end it’s all about end user experience - if your users say it’s all good - it’s all good