课 程 推 荐 我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈 入 门 教 程 推 荐 :👉👉 Python零基础入门教程合集 👈👈 虚 拟 环 境 搭 建 :👉👉 Python项目虚拟环境(超详细讲解) 👈👈 PyQt5 系 列 教 程:👉👉 Python GUI(PyQt5)教程合集 👈👈 Oracle数据库教程:👉👉 Oracle数据库教程合集 👈👈 MySQL数据库教程:👉👉 MySQL数据库教程合集 👈👈 优 质 资 源 下 载 :👉👉 资源下载合集 👈👈 优 质 教 程 推 荐:👉👉 Python爬虫从入门到入狱系列 合集 👈👈 .
MySQL_索引
索引
- 索引引入
- 索引优缺点
- 索引实例
- 索引分类
- 创建索引
- 删除索引
-
索引引入
- 定义:索引是由数据库表中一列或者多列组合而成,其作用是提高对表中数据的查询速度;
类似于图书的目录,方便快速定位,寻找指定的内容
- 定义:索引是由数据库表中一列或者多列组合而成,其作用是提高对表中数据的查询速度;
-
索引优缺点
- 优点:提高查询数据的速度;
- 缺点:创建和维护索引的时间增加了;
-
索引实例
-
索引分类
-
普通索引
- 这类索引可以创建在任何数据类型中;
-
唯一性索引
- 使用 UNIQUE 参数可以设置,在创建唯一性索引时,限制该索引的值必须是唯一的;
-
全文索引
- 使用 FULLTEXT参数可以设置,全文索引只能创建在CHAR,VARCHAR,TEXT类型的字段上。
- 主要作用就是提高查询较大字符串类型的速度;只有 MyISAM 引擎支持该索引,Mysql 默认引擎不支持;
-
单列索引
- 在表中可以给单个字段创建索引,单列索引可以是普通索引,也可以是唯一性索引,还可以是全文索引;
-
多列索引
- 多列索引是在表的多个字段上创建一个索引;
-
空间索引
- 使用 SPATIAL参数可以设置空间索引。空间索引只能建立在空间数据类型上,这样可以提高系统获取空间数据的效率;只有 MyISAM 引擎支持该索引,Mysql 默认引擎不支持;
-
创建索引
-
设置成主键的字段,会自动添加为索引,并且该索引不允许被删除
-
创建表的同时创建索引
create table 表名(字段1 数据类型 [完整性约束条件], 字段2 数据类型 [完整性约束条件], . . . 字段n 数据类型 [UNIQUE|FULLTEXT|SPATIAL]INDEX|KEY [别名](字段名1[(长度)][ASC|DESC]) );
-
在已经存在的表格上创建索引
create [UNIQUE|FULLTEXT|SPATIAL]INDEX 索引名 ON 表名(字段名[(长度)] [ASC|DESC]);
-
用ALTER TABLE语句创建索引
ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL]INDEX 索引名(字段名[(长度)][ASC|DESC]);
-
创建表同时创建索引示例
-
创建普通索引
CREATE TABLE t_user1(id INT PRIMARY KEY AUTO_INCREMENT, userName VARCHAR(20), pasword VARCHAR(20), INDEX(username) );
-
创建唯一性索引
CREATE TABLE t_user2(id INT PRIMARY KEY AUTO_INCREMENT, userName VARCHAR(20), pasword VARCHAR(20), UNIQUE INDEX index_username(username) );
-
创建全文索引(需要用MyISAM引擎)
CREATE TABLE t_user3(id INT PRIMARY KEY AUTO_INCREMENT, userName VARCHAR(20), pasword VARCHAR(20), FULLTEXT INDEX (username) );
-
创建单列索引
CREATE TABLE t_user4(id INT PRIMARY KEY AUTO_INCREMENT, userName VARCHAR(20), pasword VARCHAR(20), INDEX(username) );
-
创建多了索引
CREATE TABLE t_user5(id INT PRIMARY KEY AUTO_INCREMENT, userName VARCHAR(20), pasword VARCHAR(20), INDEX index_name_pasword(username,pasword) );
-
创建控件索引(需要用MyISAM引擎)
CREATE TABLE t_user3(id INT PRIMARY KEY AUTO_INCREMENT, userName VARCHAR(20), pasword VARCHAR(20), SPATIAL INDEX (username) );
-
-
在已有表格中创建索引示例
- 语法
CREATE [UNIQUE|FULLTEXT|SPATIAL]INDEX 索引名 ON 表名(字段名)
- 创建普通索引
CREATE INDEX index_pasword ON t_user5(pasword)
- 创建唯一性索引
CREATE UNIQUE INDEX index_pasword ON t_user5(pasword)
- 创建多列索引
CREATE INDEX index_pasword_username ON t_user5(pasword,username)
-
用ALTER TABLE语句创建索引
- 语法
ALTER TABLE 表名 ADD [UNIQUE|FULLTEXT|SPATIAL]INDEX 索引名(字段名[(长度)][ASC|DESC]);
- 创建普通索引
ALTER TABLE t_user5 ADD INDEX index_username(userName)
- 创建唯一性索引
ALTER TABLE t_user5 ADD UNIQUE INDEX index_username(userName)
- 创建多列索引
ALTER TABLE t_user5 ADD INDEX index_username_password(userName,pasword)
-
删除索引
- 语法
DROP INDEX 索引名 ON 表名
- 示例
DROP INDEX index_username_password ON t_user5