• 数据库索引


    数据库索引概述
    一、数据库索引
    在数据库中,素引使数据库程序无须对整个表进行扫描,就可以在其中找到所有数据。
    数据库的索引是某个表中一列或者若于列值的集合,以及物理标识这些值的数据页的逻辑指针清单。
    二、索引的作用
    (1)设置了合适的索引之后,数据库利用各种快速的定位技术,能够加快查询速率,特别是当表很大时,或者查询涉及到多个表时,使用索引可使查询加快成千倍。
    (2)可以降低数据库的1O成本,并且索引还可以降低数据库的排序成本。
    (3)通过创建唯一性索引保证数据表数据的唯一性,可以加快表与表之间的连接。
    (4)在使用分组和排序时,可大大减少分组和排序时间。
    三、索引的分类。
    (1)普通索引
    这是最基本的索引类型,而且没有唯一性之类的限制.
    (2)唯一性索引
    与普通索引基本相同,区别在于:索引列的所有值都只能出现一次,即必须唯一,但可为空。
    (3)主键,是一种特殊的唯一索引,必须指定为“PRIMARYKEY”,具有唯一性的同时不能为空。
    (4)全文索引
    MySQL从3.23.23版开始支持全文索引和全文检索。在MySQL中,全文索引的类型为FULLTEXT,全文索引可以在VARCHAR或者TEXT类型的列上创建。贴吧的文本内容,和一些小型的网站网页内容,存放在数据库中即为全文索引模式。
    (5)单列索引与多列素引
    索引可以是单列上创建的索引,也可以是多列上创建的索引。
    四、创建索引的原则依据
    1、表的主键、外键必须有索引。
    2、数量超过300行的表应该有索引。
    3、经常与其他表进行连接的表,在连接字段上应该建立索引。
    4、唯一性太差的字段不适合建立索引。
    5、更新太频繁的字段不适合创建索引
    6、经常出现在where字句中的字段,特别是大表的字段,应该建立索引。
    7、索引应该建在选择性高的字段上
    8、索引应该建立在小字段上,对于大的文本字段甚至超长字段,不要建立索引
    五、创建、查看、删除索引的方法。
    根据企业需求选择了合适的索引之后,可以使用CREATE INDEX创建素引,CREATE INDEX加上各个索引关键字便可创建各个类型的索引。

    1、创建普通索引
    格式:create index <索引的名字> ON 表名(字段);
    2、创建唯一性索引
    格式:create unique index <索引的名字> ON 表名(字段)
    3、创建主键索引
    格式:create table 表名 ([…], primary key(字段));
    alter table 表名 add primary key(字段);
    4、查看索引.
    格式:show index from 表名;
    show keys from 表名;
    5、删除索引
    格式:drop index <索引的名称> on 表名;
    alter table 表名 drop index <索引的名称>;
    alter table 表名 drop primary key;

    案例:
    [root@localhost ~]# mysql -uroot -p111111
    MariaDB [(none)]> create database imployee_salary charset utf8;
    MariaDB [(none)]> use imployee_salary
    MariaDB [imployee_salary]> create table IT_salary(岗位类别 char(20) not null,姓名 char(20) not null,年龄 int,员工ID int not null,学历 char(6),年限 int,薪资 int not null,primary key(员工ID));
    MariaDB [imployee_salary]> insert into IT_salary values('网络工程师','孙空武','27','011','本科','3','4800');
    MariaDB [imployee_salary]> insert into IT_salary values('windows工程师','蓝凌','19','012','中专','2','3500');;
    MariaDB [imployee_salary]> insert into IT_salary values('linux工程师','姜文','32','013','本科','8','15000');
    MariaDB [imployee_salary]> insert into IT_salary values('java软件工程师','关园','38','014','大专','10','16000');
    MariaDB [imployee_salary]> insert into IT_salary values('硬件驱动工程师','罗中昆','29','015','大专','9','16500');
    MariaDB [imployee_salary]> create index salary_index on IT_salary(薪资); //创建普通索引
    MariaDB [imployee_salary]> alter table IT_salary add primary key(员工ID); //创建主键索引
    MariaDB [imployee_salary]> create unique index salary_unique_index on IT_salary(姓名); //创建唯一性索引
    MariaDB [imployee_salary]> show index from IT_salary G; //查看索引
    MariaDB [imployee_salary]> drop index salary_index on IT_salary; //删除普通索引
    MariaDB [imployee_salary]> alter table IT_salary drop index salary_unique_index; //删除主键索引
    MariaDB [imployee_salary]> alter table IT_salary primary key; //删除主键索引

  • 相关阅读:
    数学
    数学
    Computer Science
    数学
    Computer Science
    元学习
    数学
    数学
    数学
    数学
  • 原文地址:https://www.cnblogs.com/lyqlyqlyq/p/11673920.html
Copyright © 2020-2023  润新知