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

    其它日后补充。

  • 相关阅读:
    解决ajax 发送post 请求时csrf_token 问题
    pip 常用命令
    mac 查看端口的使用情况
    使用from __future__ import unicode_literals
    git 使用
    django rest_framework
    Apache JMeter 接口压力测试
    HTTP 协议
    自定义异步非阻塞web框架
    WebSocket
  • 原文地址:https://www.cnblogs.com/wzk-0000/p/9442249.html
Copyright © 2011-2022 走看看