Joget Workflow v6 Released
Check out the latest Joget Workflow v6 for many new features and improvements in user experience (UX), app maintainability and performance.
|Table of Contents|
When a Datalist created is being viewed in an Userview's List, there are few things that will take place.
This is the select query that we will use in the datalist binder.
SELECT o.*, i.* FROM app_fd_order o JOIN app_fd_order_item i ON o.id = i.order_id
Depending on which Userview Menu you use, most of them would provide you the capability to show the row count appended to the menu name. The query we have here would take a long time to compute because the database would need to first execute the query (with JOIN) and return the data set entirely before it is able to count the records. The count query will be as the following:-
A full table scan is done for each combination of rows from the previous tables. This is normally not good if the table is the first table not marked
Clicking on the menu item will open up the Datalist. In a typical listing, we will have the pagination feature to traverse through records. For pagination to work, we will need to first (again) compute the number of records we have in total. The count query will kick in again this time around.
If the database server has stellar buffer or caching size/capabilities, then subsequent viewing of each page will not be penalized by the expensive count query.
When you start to design your App, you will need to try to project the amount of data that will be pouring in over a considerable amount of time and evaluate if your App can still serve and hold up well by then. You can try to also make use of Performance Analyzer for continuous monitoring of your App's performance.