当前位置: 首页 > news >正文

关于索引的使用

前言

大家好,我是Maybe。最近在学习索引。为大家分享一下索引的创建以及使用索引的注意事项。

如何创建索引

自动创建

当我们为一张表加主键约束(Primary key),外键约束(Foreign Key),唯一约束(Unique)时,MySQL会自动为对应的列自动创建一个索引。

如果表不指定任何约束时,MySQL会自动为每一列生成一个索引并用 ROW_ID进行标识。

手动创建

-- 创建普通索引
-- 创建表时的时候指定主键
CREATE table t_pk1(
id BIGINT PRIMARY key auto_increment,
name varchar(20)
);
show index from t_pk1;-- 创建表的时候单独指定主键列
CREATE table t_pk2(
id BIGINT  auto_increment,
name varchar(20),
PRIMARY KEY(id)
);-- 修改表中的列为主键索引
CREATE table t_pk3(
id BIGINT,
name VARCHAR(20)
);
desc t_pk3;
show index from t_pk3;
-- 修改表中的列为主键索引
ALTER table t_pk3 add PRIMARY KEY(id);
alter table t_pk3 add id BigINt auto_increment;-- 创建唯一键的索引
-- 创建表时创建唯一键
CREATE table t_test_1(
id bigint PRIMARY KEY auto_increment,
name varchar(20) UNIQUE
);
desc t_test_1;
show index from t_test_1;-- 修改表中的列为唯一索引CREATE table t_test_2(
id bigint PRIMARY KEY auto_increment,
name varchar(20) 
);
ALTER table t_test_2 add unique(name);
show index from t_test_2;-- 普通索引
-- 创建表时创建普通索引CREATE table t_index1(
id bigint PRIMARY key auto_increment,
name varchar(20) unique,
sno varchar(20),
index (sno)
);
desc t_index1;
show index from t_index1;-- 修改表中的列为普通索引
CREATE table t_index2(
id bigint PRIMARY key auto_increment,
name varchar(20) unique,
sno varchar(20)
);
alter table t_index2 add index(sno);
show index from t_index2;-- 单独创建索引并指定索引名
CREATE table t_index3(
id bigint PRIMARY key auto_increment,
name varchar(20) unique,
sno varchar(20)
);
show index from t_index3;
create index idx_t_index3_sno on t_index3(sno); 
-- 删除索引idx_t_index3_sno
-- 索引名最好定义为 idx_表名_列名
alter table t_index3 drop index idx_t_index3_sno;
create index idx_t_index3_sno on t_index3(sno);-- 复合索引
-- 创建表的时候指定索引
CREATE table t_index4(
id bigint PRIMARY key auto_increment,
name varchar(20) unique,
sno varchar(20),
class_id bigint,
index (sno,name)
);
show index from t_index4;-- 单独创建索引并指定索引名CREATE table t_index5(
id bigint PRIMARY key auto_increment,
name varchar(20) unique,
sno varchar(20),
class_id bigint
);
show index from t_index5;
create index idx_t_index5_sno_name on t_index5(sno,name);-- 删除主键索引前,必须先将自增列改为非自增
ALTER table t_index5 MODIFY id BIGINT;
alter table t_index5 drop PRIMARY KEY;
show index from t_index5;
-- 删除复合索引
alter table t_index5 drop index  idx_t_index5_sno_name;

 使用索引的注意事项

 

结语 

再见~希望可以帮助到有需要的人~

 

相关文章:

  • pe文件二进制解析(用c/c++解析一个二进制pe文件)
  • HTTP协议解析:Session/Cookie机制与HTTPS加密体系的技术演进(二)
  • 基于STM32、HAL库的PCM3060PWR 音频接口芯片驱动程序设计
  • UDP协议详细讲解及C++代码实例
  • 转发多台px4仿真UDP数据到地面站
  • KIVI: A Tuning-Free Asymmetric 2bit Quantization for KV Cache
  • sqlserver免费版每天备份数据库
  • 【计算机网络】3数据链路层②
  • 数据结构(一) 绪论
  • 进程与线程:07 CPU调度策略
  • 黑马Java基础笔记-10
  • Spring框架请求注解
  • Java键盘鼠标事件监听器(鼠标)MouseListener、MouseMotionListener、MouseWheelListener和(键盘)keyListener
  • 科学养生,开启健康生活
  • Spring Security与SaToken的对比
  • 机试刷题:进制转换3
  • 蓝桥杯题库经典题型
  • 【Linux】操作系统入门:冯诺依曼体系结构
  • Python作业练习3
  • 【愚公系列】《Manus极简入门》036-物联网系统架构师:“万物互联师”
  • 足球少年郎7月试锋芒,明日之星冠军杯构建顶级青少年赛事
  • 上海团队在医学顶刊连发两文,率先提出“证据污染”循证概念
  • 超新星|18岁冲击中超金靴,王钰栋的未来无限可能
  • 铁路部门:确保沿线群众安全,焦柳铁路6个区段将陆续安装防护栅栏
  • 长三角议事厅·周报|从模速空间看上海街区化AI孵化模式
  • 社恐也能嗨起来,《孤独摇滚》千人观影齐舞荧光棒