magento_extension
magento_extension copied to clipboard
Customers API : Filter order collection by customer ID for performance cause
Filter by customer email on each request takes a long time on large order collection and creates performance issues (slow queries in database):
# Query_time: 2.330689 Lock_time: 0.000100 Rows_sent: 3 Rows_examined: 372888 SELECT main_table.* FROM sales_flat_order AS main_table WHERE (customer_email = '[email protected]');
It is much faster to filter by customer ID if customer exists, and filter by email only if required.
I suggest to replace Mage::getModel('sales/order')->getCollection()
by Mage::getResourceModel('sales/order_collection')
.