我有一个客户表,其中有100,000条记录。

客户也有很多相关表,用于存储相关数据。

我的查询是这样的:

SELECT COUNT(DISTINCT `clients2`.`id`)
  FROM `clients2` as `clients2`
  LEFT OUTER JOIN `users` as `users`
    ON (    `clients2`.`user_id`=`users`.`id`
         and users.status!=5
         and clients2.status!=5
       )
LEFT OUTER JOIN `private_data` as `privateData`
  ON (    `users`.`person_id`=`privateData`.`id`
      and clients2.status!=5
     )


这只是2个联接,但我的实际查询有5-7个联接。拥有100,000条记录的速度非常慢。约0.5秒

我的数据库非常规范化。似乎我现在需要对其进行规范化。
也许有人可以推荐一个好的解决方案?

最佳答案

我认为您可能可以将Mysql的某些内置优化技术本身用于连接。

LEFT JOIN and RIGHT JOIN Optimization

10-07 21:20