gpt4 book ai didi

mysql - 使用多个表优化查询

转载 作者:行者123 更新时间:2023-11-29 04:39:33 25 4
gpt4 key购买 nike

我有一个查询,其中的数据来自多个表。

SELECT iUserID,
iUserID AS userID,
(CASE vUSBG
WHEN 1 THEN 'Yes'
WHEN 0 THEN 'No'
END) AS vUSBG,
concat(vFirstname,' ',vLastname) AS Name,
vEmail,
eType,
eStatus,
tAddedDate,
eExpert,
eAdmin,

(SELECT count(iUserID) AS total
FROM tbl_friend
WHERE iUserID = tbl_user.iUserID) AS count_f,

(SELECT COUNT(*)
FROM bar_followers
WHERE bar_followers.iUserID = tbl_user.iUserID) AS bar_follows,

(SELECT COUNT(b.iBrandID)
FROM tbl_company_follow,
tbl_brand b
WHERE tbl_company_follow.iUserID = tbl_user.iUserID
AND b.iCompanyID = tbl_company_follow.iCompanyID) AS brand_follows,

(SELECT sum(points) AS totalpoints
FROM tbl_points,
tbl_post p
WHERE iUserID = tbl_user.iUserID
AND p.iPostID = tbl_points.post_id) AS countPoints
FROM tbl_user

此查询花费了 8.3595 秒

我怎样才能最大限度地缩短时间?

最佳答案

除了缺少明确的 join 语法外,您的查询是合理的。

检查以确保您具有以下索引:

  • tbl_friend(iUserId)
  • bar_followers(iUserID)
  • tbl_company_follow(iUserID, iCompanyID)
  • tbl_brand(iCompanyID)
  • tbl_post(iUserID, iPostID)
  • tbl_points(post_id, points)

但是,根据您的数据大小,8-9 秒可能是合理的。

关于mysql - 使用多个表优化查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32694655/

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