Wie optimiert man diese databaseabfrage?

Ich muss mehrere Tabellen für Beiträge sammeln, und dies ist derzeit meine Frage:

$result = $wpdb->get_results( " SELECT p.ID AS id, pm.meta_value AS text, pm2.meta_value AS stock_status, pm3.meta_value AS stock, pm4.meta_value AS units_per_package, pm5.meta_value AS aaa_price, pm6.meta_value AS bbb_price, pm7.meta_value AS ccc_price, pm8.meta_value AS ddd_price, pm9.meta_value AS exp_date, pm10.meta_value AS del_option FROM {$wpdb->prefix}posts p LEFT JOIN {$wpdb->prefix}postmeta pm ON pm.post_id = p.ID AND pm.meta_key = '_sku' LEFT JOIN {$wpdb->prefix}postmeta pm2 ON pm2.post_id = p.ID AND pm2.meta_key = '_stock_status' LEFT JOIN {$wpdb->prefix}postmeta pm3 ON pm3.post_id = p.ID AND pm3.meta_key = '_stock' LEFT JOIN {$wpdb->prefix}postmeta pm4 ON pm4.post_id = p.ID AND pm4.meta_key = '__quantity' LEFT JOIN {$wpdb->prefix}postmeta pm5 ON pm5.post_id = p.ID AND pm5.meta_key = 'aaa_price' LEFT JOIN {$wpdb->prefix}postmeta pm6 ON pm6.post_id = p.ID AND pm6.meta_key = 'bbb_price' LEFT JOIN {$wpdb->prefix}postmeta pm7 ON pm7.post_id = p.ID AND pm7.meta_key = 'ccc_price' LEFT JOIN {$wpdb->prefix}postmeta pm8 ON pm8.post_id = p.ID AND pm8.meta_key = 'ddd_price' LEFT JOIN {$wpdb->prefix}postmeta pm9 ON pm9.post_id = p.ID AND pm9.meta_key = 'exp_date' LEFT JOIN {$wpdb->prefix}postmeta pm10 ON pm10.post_id = p.ID AND pm10.meta_key = '_del_option' WHERE -- pm2.meta_value = 'instock' AND p.post_type = 'product' AND p.post_status = 'publish' ", 'ARRAY_A'); 

Das Problem ist, dass dies eine sehr sehr langsame Abfrage ist, aber ich bin mir nicht sicher, ob es eine andere Möglichkeit gibt, dies zu beschleunigen. Gibt es eine Methode, die ich nicht sehe oder nicht verwende, die diese Abfrage von 0.64s zu etwas sehr viel schneller nehmen könnte?

Von diesem Punkt an benutze ich $result um die zurückgegebenen Werte zu durchlaufen und zu formatieren, dann baue ich ein Array von IDs und deren jeweiliges Meta auf.

Solutions Collecting From Web of "Wie optimiert man diese databaseabfrage?"