I have the same issue. Too many product (30K in my case) and 400 categories using Nginx, php 7.3 and mysql 8 on Ubuntu only one CPU. I noticed that my sites had a very high time to first byte. Obviously I have caching everywhere including database.
after reviewing the profiler there was tons of unecessary queries in my front page.
You can get your profile by typing this in the terminal:
curl -s -w 'Testing Website Response Time for :%{url_effective}\n\nLookup Time:\t\t%{time_namelookup} seconds\nConnect Time:\t\t%{time_connect} seconds\nAppCon Time:\t\t%{time_appconnect} seconds\nRedirect Time:\t\t%{time_redirect} seconds\nPre-transfer Time:\t%{time_pretransfer} seconds\nStart-transfer Time:\t%{time_starttransfer} seconds\n\nTotal Time:\t\t%{time_total} seconds\n' -o /dev/null https://xxxxx.xx
Tested with 30K products via curl command. Gtmetrix performance 30%
With a complex template I bough on themeforest:
Lookup Time: 0.028560 seconds
Connect Time: 0.028866 seconds
AppCon Time: 0.040392 seconds
Redirect Time: 0.000000 seconds
Pre-transfer Time: 0.044713 seconds
Start-transfer Time: 0.088862 seconds
Total Time: 0.088902 seconds
With the basic template provided by Prestashop I get a Gtmetrix score of 75%
Lookup Time: 0.004222 seconds
Connect Time: 0.004419 seconds
AppCon Time: 0.013796 seconds
Redirect Time: 0.000000 seconds
Pre-transfer Time: 0.017617 seconds
Start-transfer Time: 0.048474 seconds
Total Time: 0.048512 seconds
reducing the number of categories from 400 to 10 didn't change much the profile and I only gained 3% in Gtmetrix performance.
reducing the number of products from 30K to 10 did another difference. Gtmetrix @ 84%
Lookup Time: 0.004250 seconds
Connect Time: 0.004432 seconds
AppCon Time: 0.014142 seconds
Redirect Time: 0.000000 seconds
Pre-transfer Time: 0.017972 seconds
Start-transfer Time: 0.040663 seconds
Total Time: 0.040694 seconds
Therefore the variables that truly matter:
1. The template that you use can destroy your time to first byte (use only tested template - I learned the hard way)
2. The number of products and category makes a difference (Mostly products)
Makes me wonder if Prestashop is design for large product number.