MySQL_索引

无奋斗不青春

课 程 推 荐
我 的 个 人 主 页:👉👉 失心疯的个人主页 👈👈
入 门 教 程 推 荐 :👉👉 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]);
    
  • 创建表同时创建索引示例

    1. 创建普通索引

      CREATE TABLE t_user1(id INT PRIMARY KEY AUTO_INCREMENT,
      			userName VARCHAR(20),
      			pasword VARCHAR(20),
      			INDEX(username)
      			);
      
    2. 创建唯一性索引

      CREATE TABLE t_user2(id INT PRIMARY KEY AUTO_INCREMENT,
      			userName VARCHAR(20),
      			pasword VARCHAR(20),
      			UNIQUE INDEX index_username(username)
      			);
      
    3. 创建全文索引(需要用MyISAM引擎)

      CREATE TABLE t_user3(id INT PRIMARY KEY AUTO_INCREMENT,
      			userName VARCHAR(20),
      			pasword VARCHAR(20),
      			FULLTEXT INDEX (username)
      			);
      
    4. 创建单列索引

      CREATE TABLE t_user4(id INT PRIMARY KEY AUTO_INCREMENT,
      			userName VARCHAR(20),
      			pasword VARCHAR(20),
      			INDEX(username)
      			);
      
    5. 创建多了索引

      CREATE TABLE t_user5(id INT PRIMARY KEY AUTO_INCREMENT,
      			userName VARCHAR(20),
      			pasword VARCHAR(20),
      			INDEX index_name_pasword(username,pasword)
      			);
      
      • 请添加图片描述
    6. 创建控件索引(需要用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
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

失心疯_2023

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值