4 ms·
I've worked a bit with Symfony and I've worked a lot with heavily loaded LAMP deployments. Symfony/Propel (and I hear Drupal/Propel) tends to generate a whole l
by bap 19y ago
I've worked a bit with Symfony and I've worked a lot with heavily loaded LAMP deployments. Symfony/Propel (and I hear Drupal/Propel) tends to generate a whole lot of select statements when you're allowing it to generate scaffolding code.. So this leaves you with a couple options:
i) re-factor auto-gen code when it becomes a problem. A good code profiler will really help you find these bottlenecks but you can also watch 'show processlist' from a mysql CLI to see slow queries or table locking issues if you're using MyISAM.
ii) Memcache - memcache caches query results and keeps the most heavily requested results cached, lets less heavily requested data fade (it will go back to the database to get it rather than keep a copy of the result around.) obviously if you're dealing with a 'real time' application caching may not be of huge benefit.
Jeremy Zawodny has a pretty good article here:
http://jeremy.zawodny.com/blog/archives/000173.html http://jeremy.zawodny.com/blog/archives/000173.html
About setting your wait timeouts and connection limits, etc. It's good stuff and it's something I see overlooked very often. The default mysql config isn't necessarily a your friend when it comes to scaling.
Other points above relating to 'spindle speed' when it comes to hard drive performance etc, also apply. One other good rule of thumb is that MySQL loves RAM. Add RAM and you generally add performance.
Hope that helps. :)