- Increase ram to your DB if you can. How much ram do you have dedicated to your database?
There are some indexes that will simply stop being used (depending on your version of MariaDB) when you reach a certain capacity if they cannot fit in Ram. We have over 350m leads in our Mautic, but it runs on an AuroraDB cluster (read and write replica), with a minimum of 2 instances and 120GB of ram. Scales up as necessary. You may need to double your ram to continue scaling up. - Truncate the
notifications
table periodically, because core mautic doesn’t clean this out automatically yet. - Remove dashboard widgets that are not necessary. Some of those are problematic. You can update the default.json file to be a new simplified default for the users. These widgets drastically slow down login when you have millions of leads.
- If you are keen on patching with PRs, try some that address specific performance issues like #7806 #6651 #7901 (I use these in prod). Comment if they help you so we can get them in the next version.
- Try
SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
in MySQL so that concurrent modifications (like bulk deletions) do not cause outages.
Source: https://github.com/mautic/mautic/issues/8261#issuecomment-568772659