Mysql 优化

    科技2022-07-13  128

    Mysql 优化

    什么是索引? 索引是一种具有排序和查询的数据结构。

    怎么查看sql语句的具体信息? explain + sql语句。会得到详细的sql信息,可根据查询出来的信息来优化编写的sql语句。 explain中常见列:

    id:

    当id相同时:

    执行顺序是从上到下。

    当id不同时:

    id值越大越先执行。

    当id相同不同时:

    id值越大越先执行。id相同的从上到下执行。

    type:

    索引优化的级别优->差: system > const > eq_ref > ref > range > index > all

    possible_keys:

    可能用到的索引

    keys:

    实际用到的索引

    对于单表、双表、多表的索引位置的建立

    单表:建立常用的字段上。 双表:

    例如:select * form a left join b on a.id=b.id; 左连接时应该把索引建立在右表中 select * form a rightjoin b on a.id=b.id; 右连接时应该把索引建立在左表中

    三表:

    例如:select * form a left join b on a.id=b.id left join c on b.id=c.id; 左连接时应该把索引建立在右表中 select * form a right join b on a.id=b.id right join c on b.id=c.id; 右连接时应该把索引建立在左表中

    索引失效的原因

    最佳左前缀法则:查询从最左边的索引开始查询,不能跳着索引列。 否则会导致索引失效。索引列不能用函数,否则会导致索引失效索引不能用 is null 或者 is not null,否则会导致索引失效sql语句在使用!= > < 等会导致全表扫描,索引失效。like通配符开头‘%’应该放在右边,否则会导致索引失效。如果查询的结果不一样,必须使用
    转载请注明原文地址:https://blackberry.8miu.com/read-6258.html
    最新回复(0)