[英]mysql query optimization 100 000 records with left outer join
我有一个客户表,其中有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本身的一些内置优化技术进行联接。
如果数据库已规范化,则可以在查询中使用“常规”联接。这将大大加快速度。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.