我有一个客户表,其中有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