From ffe721bce430541e6691c0dd529799548574b6b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8F=B6=E5=AD=90=E8=B1=AA?= <2936219414@qq.com> Date: Thu, 19 Oct 2023 01:30:51 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=9C=E4=B8=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../10.19\347\254\224\350\256\260.md" | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 "54 \345\217\266\345\255\220\350\261\252/10.19\347\254\224\350\256\260.md" diff --git "a/54 \345\217\266\345\255\220\350\261\252/10.19\347\254\224\350\256\260.md" "b/54 \345\217\266\345\255\220\350\261\252/10.19\347\254\224\350\256\260.md" new file mode 100644 index 0000000..7f80ad4 --- /dev/null +++ "b/54 \345\217\266\345\255\220\350\261\252/10.19\347\254\224\350\256\260.md" @@ -0,0 +1,85 @@ +索引(index) + +索引是帮助mysql高效获取数据的数据结构 + +索引的分类 + +单列索引:一个索引建立在一个列上一个表可以建立多个单列索引 + +普通索引:单纯为了提高搜索效率 + +唯一索引:唯一索引只能建立在数据不同的列上 + +主键索引:不能重复只能有一个 + + + +直接建立索引 + +create index 索引名 on 表名(列名) + + + +修改表建立索引 + +alter table 表名 add index 索引名(列名) + +创建表时直接建立 + + + +如何查看一个表中有哪些索引 + +show index from 表名 + + + +删除索引 + +drop index 索引名 on 表名 + + + +唯一索引 + +与普通索引类似但索引列的值必须唯一 + +建立唯一约束时会自动创建唯一索引,名称就是列名 + + + +主键索引 + +是一种特殊的唯一索引不允许有空值创建主键索引就是创建主键约束 + +删除主键约束不需要列名 + + + +联合索引 + +create index 索引名 on 表名(列名1,列名2,...,列名n) + + + +explain 执行计划 + +可以检查某个语句的执行详细情况 + +explain select ... from ... + + 最左前缀法则(联合索引) + +如果使用了联合索引,要遵守最左前缀发则 + +指的是查询从最左列开始不跳过索引中的列,如果跳过后面索引失效 + + + +sql提示 + +select * from 表名 use index (索引) where ... 建议 + +select * from 表名 ignore index (索引) where ... 忽略 + +select * from 表名 force index (索引) where ... 强制 -- Gitee