gpt4 book ai didi

mysql - 优化自定义 Wordpress SQL 查询以获取用户元数据

转载 作者:行者123 更新时间:2023-11-29 03:22:17 25 4
gpt4 key购买 nike

我有以下查询并且有效。但由于它的堆积,处理时间非常长。因此,我需要帮助才能更快地获得此查询。

SQL查询

在查询中,PRODUCT_ID 应替换为 ' ' 和 productID 编号。

SELECT
b.order_id,
customer_meta.meta_value AS customer_id,
users.user_email,
qty_table.meta_value AS qty,
user_meta1.meta_value AS firstname,
user_meta2.meta_value AS lastname,
user_meta3.meta_value AS company,
user_meta4.meta_value AS address,
user_meta5.meta_value AS city,
user_meta6.meta_value AS postcode,
user_meta7.meta_value AS state,
user_meta8.meta_value AS user_phone
FROM
wp_woocommerce_order_itemmeta a,
wp_woocommerce_order_items b,
wp_postmeta customer_meta,
wp_users users,
wp_woocommerce_order_itemmeta qty_table,
wp_usermeta user_meta1,
wp_usermeta user_meta2,
wp_usermeta user_meta3,
wp_usermeta user_meta4,
wp_usermeta user_meta5,
wp_usermeta user_meta6,
wp_usermeta user_meta7,
wp_usermeta user_meta8
WHERE
a.meta_key = '_product_id'
AND a.meta_value = PRODUCT_ID
AND a.order_item_id = b.order_item_id
AND customer_meta.meta_key = '_customer_user'
AND customer_meta.post_id = b.order_id
AND user_meta1.meta_key = 'first_name'
AND user_meta1.user_id = users.id
AND user_meta2.meta_key = 'last_name'
AND user_meta2.user_id = users.id
AND user_meta3.meta_key = 'billing_company'
AND user_meta3.user_id = users.id
AND user_meta4.meta_key = 'billing_address_1'
AND user_meta4.user_id = users.id
AND user_meta5.meta_key = 'billing_city'
AND user_meta5.user_id = users.id
AND user_meta6.meta_key = 'billing_postcode'
AND user_meta6.user_id = users.id
AND user_meta7.meta_key = 'billing_state'
AND user_meta7.user_id = users.id
AND user_meta8.meta_key = 'billing_phone'
AND user_meta8.user_id = users.id
AND users.ID = customer_meta.meta_value
AND qty_table.meta_key = '_qty'
AND qty_table.order_item_id = b.order_item_id
ORDER BY user_meta3.meta_value ASC

我需要所有信息,因为我想列出所有用户的名字、姓氏、公司、地址、邮政编码等,以获取已购买的给定产品。所以查询本身是有效的,但它是处理时间的 killer 。

我可以使用 max( CASE WHEN ... ... THEN ...END ) 作为 a_name 但我只知道如何在使用左连接时成功地做到这一点。

关于如何更好地运行此查询的任何提示?

最佳答案

WP,你在听吗? WooCommerce,你在听吗?我厌倦了优化您的数据库应用程序。

首先,EAV 是一个糟糕的模式设计。但我不会提示这个。我只会指出可能缺失或格式错误的索引:

wp_usermeta:  PRIMARY KEY(user_id, meta_key)

没有任何 (191) 添加。

wp_woocommerce_order_itemmeta 类似。

我可能会有更多的辱骂要说;请为正在使用的表提供SHOW CREATE TABLE

关于mysql - 优化自定义 Wordpress SQL 查询以获取用户元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42256932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com