博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
后端工程师必备知识:数据库索引讲座
阅读量:6842 次
发布时间:2019-06-26

本文共 804 字,大约阅读时间需要 2 分钟。

我们经常在后端工程师的招聘信息上看到诸如「熟悉 SQL 语句优化」、「了解数据库和索引原理」这样的要求,这是因为后端工程师最主要的工作就是和数据打交道,当数据达到一定规模之后就会对性能有一定要求,而正确地建立和使用索引是优化数据库性能时最先应该被考虑到的、最简单有效的方式。

很多人对于索引的概念仅仅停留在「有索引会快」,但至于为什么快,甚至一个查询究竟能不能用上索引,则了解得不够清楚。

说起来在中文社区中,对于 每种类型的索引能够适用于什么样的查询 的资料还是比较少的,很多文章只是一笔带过、抄来抄去。因此我收集了很多资料,与朋友同事进行讨论,最后制作了这个小系列,内容包括:

  • 索引对性能的影响(正确的索引可以给查询性能带来数量级的提升)
  • B-Tree(可以将索引看作有序的列表,我们可以在上面进行类似二分查找的快速搜索)
  • 单列索引适用的查询(全匹配、前缀匹配、范围查询、排序)
  • 单列索引不适用的查询(后缀匹配)
  • 索引的属性(主键、聚集、唯一、稀疏)
  • 区分度(一个字段上的值之间有多么不同)
  • 复合索引的概念(多个字段构成的索引)
  • 复合索引适用的查询(多字段全匹配、匹配的同时范围查询或排序、只使用左侧的字段等)
  • 复合索引不适用的查询(直接使用右侧的字段、范围查询或排序字段不在最右侧等)
  • 最左匹配原则(顺序对于复合索引非常重要)
  • 自动创建索引的一些尝试
  • 找到没有使用索引的查询(Slow Query 和 EXPLAIN)
  • JOIN 查询与索引
  • 对数据库进行性能优化的顺序(创建索引、添加缓存、调整查询、调整数据结构)

这个讲座分为上下两集,总计一小时,因为是录播,已将不流畅的部分剪辑掉了,信息密度比较高。适合有一定后端开发和数据库(MySQL 或 MongoDB)使用经验,即将独立面对较高数据量站点的维护,或对数据库索引有兴趣的开发者收看:,如有相关问题欢迎在 SegmentFault 上留言交流。

转载地址:http://wldul.baihongyu.com/

你可能感兴趣的文章
6.VMware View 4.6安装与部署-view桌面克隆与分配
查看>>
Azure恢复服务-DPM联机备份SQL数据库
查看>>
大分区使用xfs文件系统存储备份遇到的问题
查看>>
记录-三步走FreeMarker Template学习
查看>>
vsts项目管理理论基础——MSF
查看>>
Cocos2d-x Eclipse下程序运行产生错误Effect initCheck() returned -1
查看>>
Unity依赖注入使用详解
查看>>
Windows GVim
查看>>
kernel_read【转】
查看>>
内核分配大块连续内存的方法【转】
查看>>
【Python】random模块
查看>>
嵌入式Linux下Camera编程--V4L2【转】
查看>>
一文读懂最近流行的CNN架构(附学习资料)
查看>>
[工具] 程序员必须软件
查看>>
.Net Discovery系列文章阅读索引--带你探索未知的.Net世界
查看>>
设计模式(一)简单工厂(创建型)(Java&&PHP)
查看>>
Code First开发系列之数据库迁移
查看>>
UI方面书籍推荐
查看>>
Spark SQL概念学习系列之Spark SQL 优化策略(五)
查看>>
pgpool-II的 FATAL: role "nobody" does not exist 错误
查看>>