[学习打卡]08 MySql索引

每一个员工对应的掌门的名称。四种解法:

[学习打卡]08 MySql索引

1、索引:

定义:索引是帮助MySql高效获取数据的数据结构

优势:通过索引对数据库进行排序,降低数据排序的成本,降低了cpu的消耗。

劣势:提高查询效率的同时,降低了更新表的速度(插入、更新、删除),

B树

[学习打卡]08 MySql索引

B+树

[学习打卡]08 MySql索引

B树:

1、数据

2、向下的指针

3、指向数据的指针

B+树:

1、数据

2、向下的指针

[学习打卡]08 MySql索引

聚簇索引和非聚簇索引

[学习打卡]08 MySql索引

主键使用聚簇索引,非主键使用非聚簇索引

索引分类、索引操作语句:

查看索引:

[学习打卡]08 MySql索引

单值索引:

一个索引只包含单个列,一个表可以有多个索引。

语法:

[学习打卡]08 MySql索引

唯一索引:

索引列的值必须唯一,但允许有空值;

语法:

[学习打卡]08 MySql索引

主键索引:

设置为主键后数据库会自动建立索引,innodb为聚簇索引。

复合索引:

一个索引可以包含多个列;

[学习打卡]08 MySql索引

什么时候需要创建索引:

[学习打卡]08 MySql索引

什么时候不需要创建索引:

:[学习打卡]08 MySql索引

Explain(性能分析):

Explain:

使用EXPLAIN 关键字可以模拟优化器执行SQL查询语句,从而知道MySql是如何介绍你的sql语句的。分析你查询语句或是表结构的性能瓶颈。

Explain怎么用:

 [学习打卡]08 MySql索引

各字段的解释:

id

[学习打卡]08 MySql索引

select_type

[学习打卡]08 MySql索引

table /partitions

[学习打卡]08 MySql索引

 type  显示查询使用了何种类型。

[学习打卡]08 MySql索引

[学习打卡]08 MySql索引

[学习打卡]08 MySql索引

[学习打卡]08 MySql索引

 key/possible_key

[学习打卡]08 MySql索引

Extra:

[学习打卡]08 MySql索引

EXPLAIN总结:

[学习打卡]08 MySql索引