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查询更快等

    其它日后补充。

  • 相关阅读:
    Git 分支管理
    Kubernetes 中文文档
    Docker 命令大全
    Redis 常用命令 大全
    Docker 资源汇总
    Docker 安装 Redis
    JavaScript闭包
    CSS选择器
    JavaScript类型转换
    javascript字符串处理方法
  • 原文地址:https://www.cnblogs.com/wzk-0000/p/9442249.html
Copyright © 2011-2022 走看看