Mysql占用了太多的时间来执行基于多连接的sql查询

Mysql占用了太多的时间来执行基于多连接的sql查询,mysql,indexing,query-optimization,Mysql,Indexing,Query Optimization,从mysql数据库服务器执行Sql查询需要更多的时间。有许多表与sb_tblproperty表联接。sb_tblproperty是包含超过100000行的主表。表的大部分包含50000行 如何优化sql查询以快速执行。我还使用了索引 请提供说明 同时,尝试以下方法: SELECT ... FROM ( SELECT propertyId FROM sb_tblproperty WHERE `is_sold` = 0

从mysql数据库服务器执行Sql查询需要更多的时间。有许多表与sb_tblproperty表联接。sb_tblproperty是包含超过100000行的主表。表的大部分包含50000行

如何优化sql查询以快速执行。我还使用了索引


请提供
说明

同时,尝试以下方法:

SELECT ...
    FROM (
        SELECT propertyId
            FROM sb_tblproperty
            WHERE `is_sold` = 0
            ORDER BY `dateConfirm` DESC
            LIMIT 1000
         ) AS x
    JOIN `sb_tblproperty` as t1   ON t1.propertyId = x.propertyId
    JOIN `sb_contact` Owner  ON `Owner`.`id` = `t1`.`ownerID` 
    JOIN `tbl_city` C  ON `c`.`id` = `t1`.`city`
    ... 
    LEFT JOIN `sb_tblfloor` F  ON `F`.`floorName` =`t1`.`floor`
    ORDER BY `t1`.`dateConfirm` DESC   -- yes, again
连同

INDEX(is_sold, dateConfirm)
t1.projectd=“”)怎么可能?投射不是主键吗?(这是需要
显示创建表
的众多原因之一)

如果我的建议导致“重复”行(即多行具有相同的
属性id
),不要简单地按属性id添加
分组。而是找出原因,避免使用
分组方式。(这可能是性能问题。)

一种可能的情况是
组_CONCAT
。一个常见的解决方法是从

GROUP_CONCAT( distinct( L.locality)) AS Localities,
...
LEFT JOIN `sa_localitiez` L ON `L`.`id` = `PL`.`localityId` 


如果希望人们提供帮助,您应该添加表结构、索引列表和查询执行计划(带EXPLAIN)……尝试查询,看看它是否使用了索引。如果没有,你必须创建betetr索引你在
sb_tblfloor.floorName
上有索引吗?@Olli,是的,我使用了索引sb_tbloor.floorNameHi,@Rick Jame这里是解释结构的链接[Link]()你根本没有使用F?摆脱“左联
sb_tblfloor
F ON
F
floorName
=
t1
floor
”这似乎只是在浪费时间。
GROUP_CONCAT( distinct( L.locality)) AS Localities,
...
LEFT JOIN `sa_localitiez` L ON `L`.`id` = `PL`.`localityId` 
( SELECT GROUP_CONCAT(distinct locality)
         FROM sa_localitiez
         WHERE id = PL.localityId ) AS Localities
...
# and remove the JOIN