MYSQL索引1:索引介绍与基本分类

MYSQL索引1笔记:索引介绍与基本种类

1、Introduction

官方定义:一种帮助MySQL提高查询效率数据结构

Advantage:①大大加快查询速度(数据量足够时,甚至可能成百上千倍)

Disadvantages:①维护索引需消耗数据库资源;②索引需占磁盘空间;③增删改时,因维护索引使速度受影响。

2、Species

主要记得I-IV

I.  主键索引:设为主键后数据库自动建立索引,innodb为聚簇索引。  (主键索引列值不能为空)

II. 单值索引:一个索引只包含单个列,一个表可以有多个单列索引。(通俗来说就是为除主键以为的字段创建索引)

III.唯一索引:索引列的值必须唯一,但允许空值。(与主键的不同,能且只能存在一个null)

IV.复合索引:一个索引包含多列(多个列创建一个索引,比如name和phone)

V. 全文索引:FULL TEXT(类型),定义索引列上指出全文查找,允许在这些索引列中插入重复值和空值。可在CHAR、VARCHAR上创建,MYSQL中只支持MYISAM引擎。

操作↓

-- 显示索引
SHOW INDEX FROM app01_userinfo;


-- 主键索引是在建表时自动创建的(PRIMARY KEY)


-- 单值索引创建两种方式:
-- 1、建表时创建                                         字段名(但无法创建索引名)↓
CREATE TABLE app01_userinfo(id VARCHAR(20) PRIMARY KEY, name VARCHAR(20), KEY(name));
-- 2、建表后创建   ↓ Key_name(索引名)    ↓ Column_name(字段名)
CREATE INDEX name_index ON app01_userinfo(name);


-- 唯一索引 (与单值类似)
CREATE TABLE app01_userinfo(id VARCHAR(20) PRIMARY KEY, name VARCHAR(20), UNIQUE(name));
CREATE UNIQUE INDEX name_index ON app01_userinfo(name);


-- 复合索引 (也类似)
CREATE TABLE app01_userinfo(id VARCHAR(20) PRIMARY KEY, name VARCHAR(20), age INT, KEY(name,age));
CREATE INDEX nameageindex ON app01_userinfo(name,age);
-- 注:复合索引满足条件:1.最左前缀原则 2.MYSQL为更好利用索引,查询过程中会动态调整查询字段以利用索引
-- name age phone     
-- 条件1情况下只能访问:name/name age/name age phone;加上条件2,就能无视1的顺序比如age name(但不是1中的如: age phone肯定不行,小坑)


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值