A WooCommerce order is a post, and that is about to matter

Orders live in wp_posts with their data in wp_postmeta, which means a shop with two hundred thousand orders has a postmeta table with several million rows shared with every other query on the site.

-- what an order costs to read
SELECT COUNT(*) FROM wp_postmeta pm
JOIN wp_posts p ON p.ID = pm.post_id
WHERE p.post_type = 'shop_order';
-- 4,120,880

-- and the index that is doing all the work
SHOW INDEX FROM wp_postmeta;
-- meta_key(191), post_id — not meta_value

The CRUD layer introduced in 3.0 is what makes moving away from this possible without breaking every plugin, and the data store abstraction was built for exactly that migration. It has not happened yet and will not this year. In the meantime the practical mitigations are the same as for any postmeta problem: index the specific lookups that matter, keep reporting queries off the primary, and resist adding more meta keys to an order than the shop genuinely reads.