zoukankan      html  css  js  c++  java
  • 优化小细节

    1、当使用索引列进行查询的时候见谅不要使用表达式,把计算放到业务层而不是数据库层

      select id from table where id+1=5;  优先级范围为ref

      select id from table where id=4;  优先级范围为count

    2、尽量使用主键查询,而不是其他索引,因此主键查询不会触发回表查询

    3、使用前缀索引

    4、使用索引扫描来排序

    5、union all,in,or都能够使用索引,但是推荐使用in

    6、范围列可以用到索引

       但是where条件中的范围查找后的条件不会走索引

      select * from dept where a>10 and b=1;  b不会走索引

    7、强制类型转换会全表扫描

     phone存在索引,phone的类型为varchar,上图中第一条sql由int强制转换为varchar,不走索引

    8、更新十分频繁,数据分区不高的字段上不宜建立索引

      更新会变更B+树,更新频繁的字段会降低数据库性能

    9、创建索引的列,不允许为null,可能会得到不符合预期的结果

    10、当需要进行表连接的时候,最好不要超过三张表,因为需要join的字段类型必须一致

    11、如果明确知道只有一条结果返回,limit1能够提高效率

    12、单表索引建议控制在5个以内

    13、单索引字段不允许超过5个(组合索引)

    作者:http://cnblogs.com/lyc-code/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权力。

  • 相关阅读:
    接口类和抽象类
    生成器和迭代器
    装饰器
    KMP算法(java,c++)
    java EE
    XML
    SQL语法
    单元测试
    JDBC
    SpringCloud
  • 原文地址:https://www.cnblogs.com/lyc-code/p/14459053.html
Copyright © 2011-2022 走看看