zoukankan      html  css  js  c++  java
  • mysql中的查询优化

    like查询一般会扫描全表,但是dd%会用到索引,但是%dd,不会用到索引

    当要建立联合索引的时候,离散度较大的列放到前面。打个比方,如果要建立一个姓名(name)和年龄(age)的联合索引,肯定要把name放到前面(index(name,age)),因为age的范围最多不会超过0-120(全世界没几个人能活到120岁以上吧),而name的情况就有成千上万种了。放到前面的好处就是第一次就能筛掉一大批数据,这样更有利查询的效率。

    和foreach一样大的放外面减少cpu的跨层查询

    2.索引的连接使用相同的字段

      连表查询,要确保两个字段使用相同的字段类型,字符编码也要一样.

    3.不要使用order by rand()

      这样会给数据库提前留下了一个可怕的查询瓶颈

    4.索引字段类型也会影响查询效率

      varchar作为索引字段是没有int作为索引效率高,因为内部的索引方式不同

    5.相对varchar有限使用enum

      enum枚举类型是非常快速紧凑的,在内部就像tinyint一样存储,他们可以包含和显示字符串值

  • 相关阅读:
    第二类斯特林数学习笔记
    [ZJOI2017]树状数组
    「LibreOJ Round #6」花火
    [Ynoi2016]这是我自己的发明 莫队
    codeforces706E
    扩展CRT
    PKUSC2018游记
    「PKUWC 2018」Minimax
    「SHOI2015」(LOJ2038)超能粒子炮・改
    Codeforces712E
  • 原文地址:https://www.cnblogs.com/hanshuai0921/p/6595557.html
Copyright © 2011-2022 走看看