繁体   English   中英

MySQL查询优化100000条带有左外连接的记录

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM