• MySql left join 多表连接查询优化语句


     

    先过滤条件然后再根据表连接 同时在表中建立相关查询字段的索引这样在大数据多表联合查询的情况下速度相当快

     创建索引:

    create index ix_register_year ON dbo.selects(register_year)

    复制代码

    SELECT M.*,SS.SensorCode,SS.SensorStatus,SS.ManufacturerId,SS.Electricity,
    SS.Voltage,SS.MinElectricity,SS.MinVoltage,SS.Temperature,SS.StatusUpdteDate,SS.UpdateStatus ,tp.PricingStrategyid,tps.FreeDuration,bat.BerthTypeId 
    FROM
    (SELECT T.* , BS.ParkStatus,BS.ChangeTime ,CA.CantonName, SE.SectionName
     FROM
    (SELECT A.* ,B.BerthId,B.BerthCode,B.BerthAddress,B.BerthStatus,B.LineDirection,B.CantonId,B.SectionId 
    FROM 
    (SELECT AR.AreaId,AR.AreaCode,AR.AreaName FROM   SYS_Area  AS AR  WHERE 1=1   AND AR.AreaCode='110' ) A 
    LEFT JOIN  SYS_Berth AS B ON B.AreaId=A.AreaId ) T
    JOIN SYS_BerthStatus AS BS ON T.BerthCode=BS.BerthCode  
    JOIN SYS_Canton AS CA ON T.CantonId=CA.CantonId  
    JOIN SYS_Section AS SE ON T.SectionId=SE.SectionId )M
    
    LEFT JOIN SYS_Sensor SS ON M.BerthCode=SS.BerthCode 
    LEFT JOIN TRA_PricingBerth AS tp ON tp.BerthCode=M.BerthCode 
      
    LEFT JOIN TRA_PricingStrategy  AS tps ON tps.PricingStrategyId=tp.PricingStrategyId 
    LEFT  JOIN SYS_BerthAndType AS bat ON bat.BerthCode=M.BerthCode 
    ORDER BY BerthCode ASC
    复制代码
  • 相关阅读:
    24. orcle创建备份表
    23. oralce11g导出dmp然后导入Oracle10g
    模板
    日记集
    Outlook 2013 电子邮件账户设置备份与恢复
    Firefox恢复书签
    Windows 7 Professional安装多语言包
    CentOS下成功修复了Windows的grub引导
    CentOS 7修复MBR和GRUB
    从移动硬盘开机,引导VHD(Win10)
  • 原文地址:https://www.cnblogs.com/xiaohuizhenyoucai/p/10653687.html
Copyright © 2020-2023  润新知