
高性能MySql
文章平均质量分 87
程序编织梦想
不断否定自我,不断重塑自我,不断挑战自我
展开
-
索引系列知识三:索引总结
一、前言前面二章我们讲解了《 聚集索引与非聚集索引详解 》、《联合索引、覆盖索引和索引下推详解》,大家可以点击查看。这一章我们对什么时候用索引、索引失效的情况进行总结,并编成一个顺口溜方便大家记忆。二、索引使用场景2.1 哪些情况需要创建索引1、主键自动建立唯一索引这个不用多解释了,主键会自动建立主键索引。2、频繁作为查询条件的字段应该创建索引 where打个比方:where a = xxx,我们应该在a 上建立索引。3、多表关联查询中,关联字段应该创建索引 on 两边都要创建索引。4、查原创 2020-12-30 16:53:56 · 521 阅读 · 0 评论 -
索引知识系列二:联合索引、索引覆盖和索引下推详解
一、前言上一节我们讲解了聚集索引和非聚集索引的区别(索引知识系列一:聚集索引与非索引详解 ),我们知道非聚集索引在查询过程中有回表的过程,这就造成了效率的下降。那如何不用回表或者减少回表以提高查询速度呢?这就是本章要讲的内容。二、联合索引联合索引(也叫组合索引、复合索引、多列索引)是指对表上的多个列进行索引。联合索引的创建方法跟单个索引的创建方法一样,不同之处仅在于有多个索引列。开讲之前我们先弄一张学生表,表数据如下:下面我们给出一个需求:查询表中以字母"L"开头的姓名及年龄。1、常规的写法(原创 2020-12-29 15:21:43 · 8777 阅读 · 7 评论 -
索引知识系列一:聚集索引与非聚集索引详解
前言面试的时候,都会被问到索引有哪几种,一般我们都会回答:主键索引,唯一索引,全文索引等等。但是你回答的是具体的索引,实际上索引大体可以分成二大类:聚集索引和非聚集索引。下面我们具体介绍。聚集索引 (又叫聚簇索引)聚集索引就好比只有正文(没有目录)的汉语字典一样。我们知道汉语字典的排列顺序是从字母“a”开头并以“z”结尾的。如果我们要找“安”这个字。那就需要找以字母‘a’开头的那部分内容,如果您翻完了所有以“a”开头的部分仍然找不到这个字,那么就说明您的字典中没有这个字。相反,如果您找到了这个字,那您原创 2020-12-28 15:20:38 · 5145 阅读 · 2 评论 -
B+树和B/B-树的区别?Mysql为啥用B+树来做索引?
一、为什么需要索引?大家都知道,我们读取数据时要避免全表扫描,那如何避免全表扫描呢?目前科学家给出的目标就是索引。索引就好比一本字典的目录一样,有了目录读者就不需要翻找全书来找内容。同样有了索引,数据库就不用全表扫描了。在一张数据表中不管你建不建索引都会有一个默认索引。如果有主键,则mysql会自动按照主键建索引。如果没有主键,mysql也会创建一个默认索引。所以:在创建表的时候,一定要创建主键。二、为什么索引存储在硬盘之中呢?索引是存储在硬盘之中的,这是为什么呢,大家想一下,如果出现意外情况(原创 2020-12-24 14:54:26 · 570 阅读 · 1 评论 -
想要弄懂GROUP BY看这一篇就够了
一、前言group by 关键字,不管是工作中还是面试都会经常被用到,所以弄懂它是非常有必要的。要弄懂group by 那我们就得联合着:聚合函数、group by 、having 一块讲解。讲之前我们先准备一张表:二、聚合函数为了讲好group by我们必须先将聚合函数,所以大家别着急,一步步往下看。聚合函数是将“若干行数据”经过计算后聚合成“一行数据”常用的聚合函数如下:1.MAX:返回某列的最大值 2.MIN(column) 返回某列的最高值 3.COUNT(column) 返回某原创 2020-12-22 17:13:21 · 2269 阅读 · 0 评论