网站首页 > 数据库> 文章内容

技术 分享:SQL语言之索引

※发布时间:2019-7-9 6:00:10   ※发布作者:habao   ※出自何处: 

  本章我们将学习MySQL中的索引,本文将从索引的作用、索引的分类、创建索引的语法、索引的使用策略以及索引的实现原理等方面带大家了解索引。

  索引的作用就是加快查询速度,如果把使用了索引的查询看做是法拉利跑车的话,那么没有用索引的查询就相当于是自行车。目前实际项目中表的数据量越来越大,动辄上百万上千万级别,没有索引的查询会变得非常缓慢,使用索引成为了查询优化的必选项目。

  索引其实是一种特殊的数据,也保存在数据库文件中,索引数据保存着数据表中实际数据的。类似书籍前面的目录,这个目录就保存了书中各个章节的页数,通过查看目录我们可以快速定位章节的页数,从而加快查找速度。

  假设书籍表中有几百万行数据,没索引的查询会遍历前面的100万行数据找到结果,如果我们在id上建立主键索引,则直接在索引上定位结果,速度要快得多。

  缺点:本身也是数据,会占用磁盘空间;索引的创建和也需要时间成本;进行删除、更新和插入操作时,因为要索引,所以速度会降低。

  注意:创建组合索引时,要遵循”最左前缀”原则,把最常查询、排序的字段放左边,按重要性依次递减。

  聚簇索引,InnoDB支持,索引的顺序和数据的物理顺序一致,类似新华字典中的拼音目录排列和汉字排列顺序一致,聚簇索引一个表中只能有一个。

  非聚簇索引,MyISAM支持,索引顺序和数据的物理顺序不一致,类似新华字典中的偏旁部首目录和汉字排列顺序不一致,非聚簇索引表可以有多个。

  BTree的数据结构如下,是一种平衡搜索多叉树,每个节点由key和data组成,key是索引的键,data是键对应的数据,在节点的两边是两个指针,指向另外的索引,而所有的键都是排序过的,这样在搜索索引时,可以使用二分查找,速度比较快,时间复杂度是h*log(n),h是树的高度,BTree是一种比较高效的搜索结构。

  B+Tree的数据结构如下,是BTree的升级版,区别叶子节点不在存储具体的数据,只保存索引的键,数据保存到叶子节点中,并且叶子节点中没有指针只有键和数据。B+Tree的优点是:搜索效率更高,因为非叶子节点中没有保存数据,就可以保存更多的键,每一层的键越多,树的高度就会减少,这样查询速度就会提升。

  索引是提高查询速度的重要手段,本章我们学习了索引的分类和创建语法,以及使用索引的策略,不是所有的表都适合创建索引,最后我们还学习了索引的内部结构,这样大家对索引会有一个基本的认识。返回搜狐,查看更多湖南幼师摸鸟门

  

相关阅读
  • 没有资料
重庆学习网zslpsh,0755深圳房产人才招聘网,拾年网90后,anedc股票,最新电影下载淘娱淘乐,重庆中学生网高考,重庆中学生网高考,学习重庆方言网,重庆中学生学习方法,重庆俗语网,中学生网zslpsh,0755深圳交友网,重庆初中生,贵州重庆方言网,025新闻网,西南重庆方言歌曲,025南京交友网,重庆农家乐美女,观赏蟹种类zadull,云南重庆方言网,重庆中学学习网,028成都交友网,推广taoyutaol,西南四川方言网,观赏龟论坛zadull,四川重庆方言网,022天津交友网,重庆中学生网家长,鹦鹉鱼zadull,重庆俗语,电影淘娱淘乐,taoyutaole娱乐,华夏视讯网,0755深圳旅游招聘,昆明重庆方言网,淘娱淘乐影视,www.00game.net,观赏鱼zadul,重庆高考zslpsh,重庆中学生网高考,027房产招聘网,坝坝舞wagcw,西南重庆方言网,贵州重庆方言网,重庆言子儿网,热带鱼zadull,重庆高考zslpsh,0755深圳旅游招聘网,淘娱淘乐影视网,0571.361.cm,重庆方言学习网,028成都新闻,异形观赏鱼种类,影视网淘娱淘乐,最新电影下载淘娱淘乐,0773桂林论坛,拾年网80后动画片,观赏蟹论坛zadull,观赏龟繁殖教程,重庆一中zslpsh,重庆俗语网,广场舞wagcw,观赏虾的种类zadull,观赏鱼观赏虾观赏龟,西南方言网,观赏鱼之家论坛zadull,战争前线辅助00game,西南重庆方言小说,重庆中小学zslpsh,推广taoyutaol,战争前线论坛00game,0871交友网,025南京新闻网,重庆言子儿网站,娱乐taoyutaole,022天津交友网,025新闻网,重庆中学生网学习,022天津交友网,重庆方言歌网,www.120.cm健康网,anedc股票,重庆初中生