我有一个客户表,其中有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个连接。而且它有10万条记录非常慢。大约0.5秒
我的数据库非常规范化。似乎我现在需要对它进行反规范化。 或者也许有人可以推荐一个好的解决方案
答案 0 :(得分:2)
我认为你可能会使用一些内置的Mysql优化技术进行连接。
答案 1 :(得分:1)
如果数据库已规范化,您可以在查询中使用“普通”连接。 这应该会加速它。