Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
檀越@新空间
Coding Tree
提交
5bb8473f
C
Coding Tree
项目概览
檀越@新空间
/
Coding Tree
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
C
Coding Tree
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
5bb8473f
编写于
5月 11, 2022
作者:
彭世瑜
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix
上级
2ac243aa
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
112 addition
and
3 deletion
+112
-3
blog/mysq-advance/index.md
blog/mysq-advance/index.md
+3
-1
blog/mysq-advance/mysql-index.md
blog/mysq-advance/mysql-index.md
+103
-1
doc/php.md
doc/php.md
+6
-1
未找到文件。
blog/mysq-advance/index.md
浏览文件 @
5bb8473f
...
@@ -34,4 +34,6 @@ MySQL 运维篇
...
@@ -34,4 +34,6 @@ MySQL 运维篇
-
3.
[
https://www.yuque.com/heychu/akbndd/zhuxqd
](
https://www.yuque.com/heychu/akbndd/zhuxqd
)
-
3.
[
https://www.yuque.com/heychu/akbndd/zhuxqd
](
https://www.yuque.com/heychu/akbndd/zhuxqd
)
https://www.bilibili.com/video/BV1Kr4y1i7ru?p=86&spm_id_from=pageDriver
\ No newline at end of file
https://www.bilibili.com/video/BV1Kr4y1i7ru?p=89&spm_id_from=pageDriver
\ No newline at end of file
blog/mysq-advance/mysql-index.md
浏览文件 @
5bb8473f
#
索引
#
MySQL索引学习笔记
1.
索引概述
1.
索引概述
2.
索引结构
2.
索引结构
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
6.
索引使用
6.
索引使用
7.
索引失效的场景
7.
索引失效的场景
8.
索引设计原则
8.
索引设计原则
9.
总结
## 1. 索引概述
## 1. 索引概述
...
@@ -2010,3 +2011,104 @@ explain select * from tb_user where profession = '美术' and age >= 22 and stat
...
@@ -2010,3 +2011,104 @@ explain select * from tb_user where profession = '美术' and age >= 22 and stat
+
----+-------------+---------+------------+-------+--------------------------------+--------------------------------+---------+------+------+----------+-----------------------+
+
----+-------------+---------+------------+-------+--------------------------------+--------------------------------+---------+------+------+----------+-----------------------+
1
row
in
set
,
1
warning
(
0
.
00
sec
)
1
row
in
set
,
1
warning
(
0
.
00
sec
)
```
```
## 8、索引设计原则
1.
数据量较大(100W),且查询比较频繁的表建立索引
2.
针对于常作为查询条件(where)、排序(order by)、分组(group by)操作的字段建立索引
3.
尽量选择区分度高的列作为索引,尽量建立唯一索引,区分度越高,使用索引的效率越高
4.
如果是字符串类型,字段的长度较长,可以针对字段的特点,建立前缀索引
5.
尽量使用联合索引,减少单列索引,查询时,联合索引很多时候可以覆盖索引,节省存储空间,避免回表,提高查询效率
6.
要控制索引的数量,索引并不是多多益善,索引越多,维护索引结构的代价也就越大,会影响增删改的效率
7.
如果索引列不能存储null值,请在创建表的时候使用
`not null`
约束它。当优化器知道每列是否包含null值时,它可以更好地确定哪个索引最有效的用于查询
## 9、总结
1.
索引概述
-
索引是高效获取数据的数据结构
-
索引是有序的数据结构
3.
索引结构
-
B+Tree:
-
所有数据都出现在叶子节点
-
叶子节点行成双向链表
-
Hash:
-
Memory存储引擎支持
-
优点:性能较高(计算hash值,直接检索数据)
-
缺点:只支持精确匹配,不支持范围查询,不支持索引排序
3.
索引分类
-
常规分类:
-
主键索引 primary key
-
唯一索引 unique
-
常规索引
-
全文索引
-
InnoDB:
-
聚集索引:叶子节点存放行数据(默认主键索引 、第一个唯一主键、自动生成隐藏的row.id)
-
二级索引:叶子节点存放主键
4.
索引语法
```
sql
-- 创建索引
create
[
unique
]
index
<
index_name
>
on
<
table_name
>
(
<
column_name
>
);
-- 查看索引
show
index
from
<
table_name
>
-- 删除索引
drop
index
<
index_name
>
on
<
table_name
>
```
5.
SQL性能分析
-
执行频次:针对查询为主的sql进行优化
-
慢查询日志
-
profile:每条SQL耗时情况
-
explain 执行计划:评判SQL语句的性能
6.
索引使用
-
联合索引:
-
最左前缀法则:最左边的列必须存在。最左边的列存在,中间跳过某些列,后面的列索引会失效
-
范围查询:范围查询右侧的列会失效,优先使用(>=、<=)
-
索引失效:
-
索引列进行函数计算
-
隐式类型转换:字符串不加引号
-
like模糊匹配:前面加了百分号
-
or连接的索引:一侧有索引,一侧没有索引
-
数据分布影响:全表扫描比索引还快
-
SQL提示
-
使用索引
`use index`
-
忽略索引
`ignore index`
-
强制使用索引
`force index`
-
覆盖索引
-
查询返回的列在索引结构中都包含了,不用走回表查询
-
回表查询:先走二级索引检索到行数据的id,再根据id到聚集索引查找行数据
-
前缀索引
-
字符串较长, 大文本字段
-
单列/联合索引
-
推荐使用联合索引,避免回表查询
7.
索引设计原则
-
表:数据量大,查询频次较高
-
字段:where/order by/group by之后的字段
-
索引
-
唯一索引 区分度高
-
联合索引 优先使用
-
前缀索引 字符串较长, 大文本字段
doc/php.md
浏览文件 @
5bb8473f
...
@@ -49,4 +49,9 @@
...
@@ -49,4 +49,9 @@
[
Twig
](
https://twig.symfony.com/
)
: is a modern template engine for PHP
[
Twig
](
https://twig.symfony.com/
)
: is a modern template engine for PHP
[
FastAdmin
](
https://www.fastadmin.net/
)
: 基于ThinkPHP和Bootstrap的极速后台开发框架
[
FastAdmin
](
https://www.fastadmin.net/
)
: 基于ThinkPHP和Bootstrap的极速后台开发框架
\ No newline at end of file
## awesome-php
-
[
https://github.com/ziadoz/awesome-php
](
https://github.com/ziadoz/awesome-php
)
-
[
https://github.com/jingwentian/awesome-php
](
https://github.com/jingwentian/awesome-php
)
-
[
https://github.com/shockerli/php-awesome/
](
https://github.com/shockerli/php-awesome/
)
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录