如何高效创建和删除MySQL数据库中的索引?
摘要:一、创建索引 MySQL支持多种方法在单个或多个列上创建索引: 在创建表的定义语句CREATE TA
一、创建索引
MySQL支持多种方法在单个或多个列上创建索引:
在创建表的定义语句CREATE TABLE中指定索引列
使用ALTER TABLE语句在存在的表上创建索引
或者使用CREATE INDEX语句在已存在的表上添加索引
======= 🌟 青柠来相伴,代码更简单。🌟 =======
📚 本文所有内容,我都整理在了博客合集里。👇
🎯 搜索关注【青柠代码录】,即可查看所有博客文章 ~
======= 🌟 =================== 🌟 =======
1、创建表时创建索引
使用CREATE TABLE创建表时,除了可以定义列的数据类型外,还可以定义主键约束、外键约束或者唯一性约束,而不论创建哪种约束,在定义约束的同时,相当于在指定列上创建了一个索引。
举例:
CREATE TABLE dept(
dept_id INT PRIMARY KEY AUTO_INCREMENT,
dept_name VARCHAR(20)
);
CREATE TABLE emp(
emp_id INT PRIMARY KEY AUTO_INCREMENT,
emp_name VARCHAR(20) UNIQUE,
dept_id INT,
CONSTRAINT emp_dept_id_fk FOREIGN KEY(dept_id) REFERENCES dept(dept_id)
)
但是,如果显式创建表时,创建索引的话,基本语法格式如下:
CREATE TABLE table_name [col_name data_type]
[UNIQUE | FULLTEXT | SPATIAL] [INDEX | KEY] [index_name] (col_name [length]) [ASC |
DESC]
UNIQUE 、 FULLTEXT 和 SPATIAL 为可选参数,分别表示唯一索引、全文索引和空间索引;
INDEX 与 KEY 为同义词,两者的作用相同,用来指定创建索引;
index_name 指定索引的名称,为可选参数,如果不指定,那么MySQL 默认 col_name 为索引名;
col_name 为需要创建索引的字段列,该列必须从数据表中定义的多个列中选择;
length 为可选参数,表示索引的长度,只有字符串类型的字段,才能指定索引长度;
ASC 或 DESC 指定升序或者降序的索引值存储。
