I'm currently seeing that for a database table with a very simple schema (about 5 fields), it's inserting new records at a rate of just under ~50 inserts / second, in my local development environment (SSD drive) - this is with no observers on the model populating associated tables.
Using direct SQL I'm seeing quite an improvement - ~1800 inserts / second. We're thinking about attempting to optimize the performance of our models, but of course we don't want to lose all of the nice stability and flexibility that the Magento core gives us.
I'm wondering whether someone has gone this route before and whether there are some easy wins in terms of components of the model layer that can be bypassed relatively safely that will give significant performance boosts.
Things like:
- Class name resolution
- before and after save events
- Event dispatches
- Transactions
- etc.
UPDATE: I lied, there actually were some additional queries firing off of observers or afterSave()'s, which I saw when I inspected the database query log. Benchmarking against a totally simple entity actually gives me ~300 rows / second with Magento models - only MySQL overhead are transactions.