zoukankan      html  css  js  c++  java
  • mysql性能优化

    1、增加关联字段索引

    2、正确使用in和exists

    (1)

    select * from T1 where exists(select 1 from T2 where T1.a=T2.a) ;

    T1数据量小而T2数据量非常大时,T1<<T2 时,1) 的查询效率高。

    select * from T1 where T1.a in (select T2.a from T2) ;

    T1数据量非常大而T2数据量小时,T1>>T2 时,2) 的查询效率高。

    简而言之,一般式:外表大,用IN;内表大,用EXISTS。

    (2)

    查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;    而not extsts 的子查询依然能用到表上的索引。

    无论那个表大,用not exists都比not in要快。

    3、int和bigint(字段长度)
    int能满足,不要用bigint;mysql数据库innodb类型索引默认大小是16kb,bingint一次查的数据会少一点,所以会慢一点

    其中:InnoDB和Myisam的主要区别:
    InnoDB:数据支持事务,外部键等;大量的insert和update更快等
    Myisam:不支持事务,大量的SELECT查询更快等

    其它日后补充。

  • 相关阅读:
    Jenkins(5)生成allure报告
    git 命令
    外连跳转微信
    微信分享接口
    微信接口
    计算php程序运行时间
    数组合并 不覆盖
    LARAVEL 分页
    laravel 随笔
    jq 监听返回事件
  • 原文地址:https://www.cnblogs.com/wzk-0000/p/9442249.html
Copyright © 2011-2022 走看看