快捷搜索:

mysql索引 b+树

2019-11-19 作者:新闻资讯   |   浏览(168)

1、B+树基本概念

  B+树的语言定义相比复杂,由此可见是为磁盘存取设计的平衡二叉树

正版香港马报免费资料 1

  网络特出图,黄绿p1 p2 p3代表指针,本白的意味磁盘,里面包蕴数据项,第生龙活虎层17,35,p1就象征小于17的,p2就代表17-35以内的,p3就意味着大于35的,但是须求专心的是,第三层才是真正的多寡,17、35都不是真性数据,只是用来划分数据的!

2、为啥使用B+树

  B+树有何好处我们非要使用它吗?那就先要来探视mysql的目录

 

  2.1mysql索引

    试想一下在mysql中有200万条数据,在向来不成立目录的情状下,集会场全数实行扫描读取,那一个时刻消耗是至极惊惶的,而对于大型一点的网址来讲,到达这几个数据量相当的轻易,不容许那样去规划

    在大家创建数量库表的时候,咱们都驾驭贰个事物叫做主键,经常来说数据库会自动在主键上创立索引,那名字为主键索引,来走访索引的分类吧

    a.主键索引:int优于varchar

    b.普通索引(INDEX卡塔尔:最核心的目录,未有界定,加速查找

    c.独一索引(UNUQUE卡塔尔:听名字就知晓,须求全部类的值是独步天下的,不过允许有空值

    d.组合索引:

1 CREATE INDEX name_age_address_Index ON `student`(`name`, `age`, `address`);

    在这里处实在富含三个目录,说起组合索引,必定要讲最左前缀原则

 


    最左前缀原则:

正版香港马报免费资料,      大家今后成立了索引x,y,z,Index:(x,y,z卡塔尔,只会走x,xy,xyz的查询,举例:

1 select * from table where x='1'
2 select * from table where x='1' and b='1'
3 select * from table where x='1' and b='1' and c='1'

      假如是x,z,就只会走x,注意后生可畏种特别情状,select * from table where x='1' and y>'1' and z='1',这里只会走xy,因为在经历xy的筛选后,z不能够确认保障是不变的,可索引是不变的,由此不会走z


 

    e.全文索引(FULLTEXT卡塔 尔(英语:State of Qatar):用于寻觅内容不长的篇章之类的很好用,假如创造普通的目录,在遇见 like='%xxx%'这种景观索引会失效

1 ALTER TABLE tablename ADD FULLTEXT(col1, col2)
2 SLECT * FROM tablename WHERE MATCH(col1, col2) AGAINST(‘x′, ‘y′, ‘z′)

    那样就足以将col1和col2里面含有x,y,z的记录整个取出来了

    

    索引的去除:DORP INDEX IndexName ON `TableName`

  

    索引的利害:

      1、在数据量极度宏大的时候,创设目录有利于大家加强查询功能

      2、在操作表的时候,维护索引会增添额外成本

      3、不泛滥使用索引,创造多了目录文件会膨胀异常的快

 

  2.2B+树的亮点

    询问上边的模型后,试想一下,200W条数据,假设还未成立目录,集会场全部扩充围观,B+树仅仅用三层组织得以代表上百万的数目,只要求一回I/O!那进步是真的壮烈啊!

    因为B+树是平衡二叉树,在不断的扩张加少的时候,为了维持平衡也许须求做大批量的拆分操作,因而提供了旋转的功力,不明了旋转建议去补一下树的基本功知识

    B+树插入动漫(来自

正版香港马报免费资料 2

3、索引优化

  1、最棒左前缀原则

  2、不要在目录的列上做操作

  3、like会使索引失效产生全表扫描

  4、字符串不加单引号会变成索引退步

  5、减弱使用select *

正版香港马报免费资料 3

  参照这里,写的很好   

 

总结:

  sql语句怎么用,未有鲜明必得怎么查,对于数据量小,不常候不要求新创制目录,依据早晚的莫过于境况来虚构

    

 

本文由正版香港马报免费资料发布于新闻资讯,转载请注明出处:mysql索引 b+树

关键词: