亚洲必嬴p3就意味着大于35的

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卡塔 尔(英语:State of Qatar):最主题的目录,未有界定,加快查找

    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卡塔尔:用于找寻内容十分短的小说之类的很好用,假诺创立普通的目录,在碰到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+树插入动漫(来自https://www.cnblogs.com/vincently/p/4526560.html)

亚洲必嬴 2

3、索引优化

  1、最好左前缀原则

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

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

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

  5、减少使用select *

亚洲必嬴 3

  参照这里,写的很好 
 https://www.cnblogs.com/zhaobingqing/p/7071331.html

 

总结:

  sql语句怎么用,未有分明必需怎么查,对于数据量小,一时候无需新确立目录,根据早晚的实际上意况来思考

    

 

网站地图xml地图