How To Make WooCommerce Search 867% Faster On Large Stores
We’ve recently experienced some serious issues with WooCommerce search on eCommerce sites that process a large number of orders. The postmeta table needs to be queried when looking for a specific meta_value, which causes a major slowdown. For example, querying the "my orders" section would take 5s or possibly even more, depending on the server environment. To make matters worse, performing searches on the "Orders" screen for orders belonging to a specific email or person can take 30s or more (due to the involvement of extra JOINs on the postmeta table). Both of the above examples are unacceptable for a website with high amount of traffic and had to be addressed.
After doing some research, we’ve found that these issues are currently handled in one of two ways:
using a secondary index table within the same site database.
The ElasticSearch solution sounds good in theory, but our experience leads us to believe that it is not a good thing to integrate with WordPress. This is due to the huge number of differences between the base WP datasource (which is MySQL tables) and the ElasticSearch indexes.
While ElasticSearch performs partial searches very well and is pretty
Source: https://managewp.org/articles/13474/how-to-make-woocommerce-search-867-faster-on-large-stores
source https://williechiu40.wordpress.com/2016/09/27/how-to-make-woocommerce-search-867-faster-on-large-stores/