ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

MYSQL 数据库索引

2020-03-12 15:55:21  阅读:164  来源: 互联网

标签:index name no 数据库 索引 MYSQL table null


索引概述

在MySQL中,索引由数据表中一列或多列组合而成,创建索引的目的是为了优化数据库的查询速度。其中,用户创建的索引指向数据库中具体数据所在位置。当用户通过索引查询数据库中的数据时,不需要遍历所有数据库中的所有数据。这样,大幅度提高了查询效率。

MySQL索引概述

1.索引是一种将数据库中单列或者多列的值进行排序的结构。应用索引,可以大幅度提高查询的速度。
2.用户通过索引查询数据,不但可以提高查询速度,也可以降低服务器的负载。
3.应用MySQL数据库时,并非用户在查询数据的时候,总需要应用索引来优化查询。
4.整体来说,索引可以提高查询的速度,但是会影响用户操作数据库的插入操作。

MySQL索引分类

MySQL的索引包括普通索引、唯一性索引、全文索引、单列索引、多列索引和空间索引等。

创建索引

创建索引是指在某个表中至少一列中建立索引,以便提高数据库性能。其中,建立索引可以提高表的访问速度。本节通过几种不同的方式创建索引。其中包括在建立数据库时创建索引、在已经建立的数据表中创建索引和修改数据表结构创建索引。

在建立数据表时创建索引

在建立数据表时可以直接创建索引,这种方式比较直接,且方便、易用。

基本语法结构如下:

create table table_name(  
属性名 数据类型[约束条件],
属性名 数据类型[约束条件]
……
属性名 数据类型
[UNIQUE | FULLTEXT | SPATIAL ]  INDEX }KEY
[别名]( 属性名1 [(长度)] [ASC | DESC])
);

例子:

普通索引

create table t_dept(
no int not null primary key,
name varchar(20) null,
sex varchar(2) null,
info varchar(20) null,
index index_no(no)
)
show index from info; 查看索引

唯一索引

create table t_dept(
no int not null primary key,
name varchar(20) null,
sex varchar(2) null,
info varchar(20) null,
unique index index_no(no)
);

全文索引

create table t_dept(
no int not null primary key,
name varchar(20) null,
sex varchar(2) null,
info varchar(20) null,
fulltext index index_no(no);

多列索引

create table t_dept(
no int not null primary key,
name varchar(20) null,
sex varchar(2) null,
info varchar(20) null,
key index_no_name(no,name)
);

在已建立的数据表中创建索引

在MySQL中,不但可以在用户创建数据表时创建索引,用户也可以直接在已经创建的表中,在已经存在的一个或几个字段创建索引。

其基本的命令结构如下:

CREATE [UNIQUE | FULLTEXT |SPATIAL ] INDEX index_name
ON table_name(属性 [(length)] [ ASC | DESC]);

例子:

普通索引

create index index_name
on t_dept(name);

唯一索引

create unique index index_name
on t_dept(name);

全文索引

create fulltext index index_name
on t_dept(name);

多列索引

create index index_name_no
on t_dept(name,no)

修改数据表结构添加索引

修改已经存在表上的索引。可以通过ALTER TABLE语句为数据表添加索引

基本结构如下: 

ALTER TABLE table_name ADD [ UNIQUE | FULLTEXT |SPATIAL ] INDEX index_name(属性名 [(length)] [ASC | DESC]);

例子:

普通索引

alter table t_dept
add index index_name(name);

唯一索引

alter table t_dept
add unique index index_name(name);

全文索引

alter table t_dept
add fulltext index_name(name);

多列索引

alter table t_dept
add index index_name_no(name,no);

删除索引

删除索引

在MySQL中,创建索引后,如果用户不再需要该索引,则可以删除指定表的索引。因为这些已经被建立且不常使用的索引,一方面可能会占用系统资源,另一方面也可能导致更新速度下降,这极大地影响了数据表的性能。所以,在用户不需要该表的索引时,可以手动删除指定索引。其中删除索引可以通过DROP语句来实现。

基本的命令如下:

DROP INDEX index_name ON table_name;

标签:index,name,no,数据库,索引,MYSQL,table,null
来源: https://blog.51cto.com/13760351/2477651

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有