美文网首页
联表查询的MySQL语句怎么加索引

联表查询的MySQL语句怎么加索引

作者: 李北北 | 来源:发表于2017-11-13 17:01 被阅读0次

    如题,怎么样对下面的sql语句加索引,才能提高其执行速度呢?请看下文分析。

    SELECT
        m.id AS id,
        m.`name` AS `name`,
        dd.device_id AS deviceId
    FROM
        apartment_door m
    LEFT JOIN door_device dd ON dd.door_id = m.id AND dd.isdel = 'N'
    WHERE
        m.isdel = 'N'
    

    1、在没有加索引的情况下,查询465条数据用时大概30毫秒左右,如图


    image.png

    2、先对主表apartment_door的主键id字段加上普通索引,测试发现查询效率并没有什么提高。如图:

    image.png

    3、删除上面步骤添加的索引,给关联表door_device的door_id字段加上普通索引,执行查询,可以看到查询时间只需要原来的三分之一,速度显著提高了,如图:


    image.png

    4、同时把上面2、3步骤的索引都加上,结果和只加上3步骤的索引一样,如图:


    image.png

    总结:

    通过上面各个步骤的尝试可以发现,联表查询时候索引应该加在LEFT JOIN关联表的关联字段上,比如本例中的door_device表door_id字段。

    相关文章

      网友评论

          本文标题:联表查询的MySQL语句怎么加索引

          本文链接:https://www.haomeiwen.com/subject/tfbzmxtx.html