[英]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.