私はMySQLを使用していますが、私は後でテーブルのテーブルに使用するためにクエリーしている30,000行以上のテーブルを持っています。 問題は、実行するのに1秒以上かかるクエリで、Webサイトのユーザーが常に不平を言っているので、スピードアップする必要があるということです。ここでSQLクエリーが長すぎます
は、クエリです:
SELECT `partners`.`id`,
`partners`.`first_name`,
`partners`.`url`,
`partners`.`country`,
`partners`.`city`,
`partners`.`followers` AS `amount_of_followers`,
`partner_user_brand`.`brand_id` AS `brand`,
MAX(posts.code_start) AS code_start,
MAX(posts.code_end) AS code_end,
`partners`.`platforms`,
( SELECT sales
FROM posts
WHERE partner_id = partners.id
ORDER BY posts.code_end DESC
LIMIT 1
) AS latest_sale,
`partners`.`email`,
`partners`.`gender`,
`partner_brand_status`.`status_id`,
`partners`.`school`,
( SELECT COALESCE(SUM(sales), 0)
FROM posts
WHERE partner_id = partners.id
) AS tsales,
COALESCE(MAX(posts.sales), 0) AS best_sale,
IF(partner_user_brand.brand_id=1, RIGHT(contacted, 10), RIGHT(nv_contacted, 10)) AS last_contact
FROM `partners`
LEFT JOIN `posts`
ON `partners`.`id` = `posts`.`partner_id`
INNER JOIN `partner_user_brand`
ON `partners`.`id` = `partner_user_brand`.`partner_id`
INNER JOIN `partner_brand_status`
ON `partners`.`id` = `partner_brand_status`.`partner_id`
AND `partner_user_brand`.`brand_id` = `partner_brand_status`.`brand_id`
GROUP BY `partners`.`id`,
`partner_user_brand`.`brand_id`
はそれを短くするか、より高速にする方法はありますか?
また、クエリの結果をすばやくカウントする方法はありますか。
あなたの質問に質問を書いてください。 –
@GordonLinoff申し訳ありませんが、私はほとんど質問をするためにStackoverflowを使用しました。しようとします。 – Ryukish
この場合、次のように読むことができます:[ask] – Pred