In writing EasyLayouts (the tool that transform your Joomla! content without the need for coding) we have found a number of issues with the implementation of custom fields and forms in Joomla.  As we have found these we have been issuing pull requests (requests to update the core code) to resolve these issues in Joomla - several of these have already been incorporated into the core code of Joomla.

In recent times we have been working on improving our implementation of Joomla content filtering.  This filtering allows you to add conditions to your Joomla menu items and modules based on the core Joomla custom field values and also to create a filter module to filter your category blog, category list and features articles views in Joomla.  In doing this work we found we were able to improve the performance of the filter dramatically by change the way one of our database queries was implements - this got us thinking and wondering if the custom field queries used in Joomla could be improved in a similar way.

We did some investigating and found that for large sites (with more than a few hundred articles) that also implemented Joomla custom fields the content search plugin was cripplingly slow and could often take 20-30 MINUTES execution time to return a result - so in practice users would get a timeout error and in the worse cases these searches could bring down a web server.

We have been able to implement some changes that slash these times down to fractions of a second.  We have posted these to GitHub (where the Joomla source code is managed) and they have become part of Joomla 3.8.3 so everyone can benefit from these performance enhancements.

As we see other bottlenecks or opportunities to improve the performance or functionality of Joomla we will make further pull requests.