如何高效创建和删除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 指定升序或者降序的索引值存储。
阅读全文