簡體   English   中英

mysql 同表內查詢優化

[英]mysql query optimization within the same table

以下查詢在查詢監視器下作為慢查詢返回。 大約需要 0.4 秒。 有什么辦法可以提高它的查詢速度嗎?

同表下查詢(wp_postmeta),取2組meta_key和meta_value作為其條件

SELECT p.post_id as id
FROM `wp_postmeta`as p, `wp_postmeta`as b
WHERE p.post_id = b.post_id
AND (b.meta_key = 'gift_price' and b.meta_value != '')
AND (p.meta_key = '_stock_status' and p.meta_value = 'instock') 

我嘗試過使用gift_price 的meta_value > 1 並且它實際上減慢了它的速度。

WP 中的“元”表具有低效的架構規范。 建議: http : //mysql.rjweb.org/doc.php/index_cookbook_mysql#speeding_up_wp_postmeta

索引 wp_postmeta 表

ALTER TABLE `wp_postmeta` 
   ADD INDEX `IndexName` (`post_id` ASC, `meta_key` ASC, `meta_value` ASC);

使用 EXPLAIN 並檢查索引是否正常工作

EXPLAIN SELECT p.post_id as id
FROM `wp_postmeta`as p, `wp_postmeta`as b
WHERE p.post_id = b.post_id
AND (b.meta_key = 'gift_price' and b.meta_value != '')
AND (p.meta_key = '_stock_status' and p.meta_value = 'instock') 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM