SQL索引

作者: 一枚豪迈的胡萝卜 | 来源:发表于2018-07-30 21:19 被阅读0次

定义:

索引是由数据库表中一列或者多列组合而成,其作用是提高对表中数据的查询速度;

类似于图书的目录,方便快速定位,寻找指定的内容;

优点:提高查询数据的速度;

缺点:创建和维护索引的时间增加了;

索引分类:

1、普通索引

这类索引可以创建在任何数据类型中;

CREATE TABLE t_user1(id INT ,

                    userName VARCHAR(20),

                    PASSWORD VARCHAR(20),

                    INDEX (userName)

            );

2、唯一性索引

使用UNIQUE参数可以设置,在创建唯一性索引时,限制该索引的值必须是唯一的;

CREATE TABLE t_user2(id INT ,

                    userName VARCHAR(20),

                    PASSWORD VARCHAR(20),

                    UNIQUE INDEX index_userName(userName)

            );

3、全文索引

使用FULLTEXT参数可以设置,全文索引只能创建在CHAR,VARCHAR,TEXT类型的字段上。主要作用是提高查询较大字符串类型的速度;只有MyISAM引擎支持该索引,Mysql默认引擎不支持;

4、单列索引

在表中可以给单个字段创建索引,单列索引可以是普通索引,也可以是唯一性索引,还可以是全文索引;

5、多列索引

多列索引是在表的多个字段上创建一个索引;

CREATE TABLE t_user3(id INT ,

                    userName VARCHAR(20),

                    PASSWORD VARCHAR(20),

                    INDEX index_userName_password(userName,PASSWORD)

            );

6、空间索引

使用SPATIAL参数可以设置空间索引。空间索引只能建立在空间数据类型上,这样可以提高系统获取空间数据的效率;只有MyISAM引擎支持该索引,Mysql默认引擎不支持;

创建索引

1、创建表的时候创建索引

CREATE TABLE表名(属性名 数据类型[完整性约束条件],

属性名 数据类型[完整性约束条件],

....

属性名 数据类型

[UNIQUE | FULLTEXT | SPATIAL ] INDEX| KEY

[别名] (属性名1 [(长度)] [ASC | DESC])

);

2、在已经存在的表上创建索引

CREATE [ UNIQUE | FULLTEXT | SPATIAL ] INDEX索引名

ON表名(属性名[(长度)] [ ASC | DESC]);

CREATE INDEX index_userName ON t_user4(userName);

CREATE UNIQUE INDEX index_userName ON t_user4(userName);

CREATE  INDEX index_userName_password ON t_user4(userName,PASSWORD);

3、用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,PASSWORD);

删除索引

DROP INDEX索引名ON表名 ;

DROP INDEX index_userName ON t_user5;

DROP INDEX index_userName_password ON t_user5;

相关文章

  • SQL Server数据库高级进阶之索引优化实战演练

    一、SQL Server索引优化本质 二、SQL Server索引存储机制 三、SQL Server索引类型分类 ...

  • MySQL正确使用索引

    需要解决的问题 知道sql为什么会走索引? 为什么有些sql不走索引? sql会走那些索引,为什么会这么走? In...

  • SQL语句的优化

    sql语句的优化:多使用共享语句 尽量使你的sql语句能够使用索引。怎样使sql语句能够使用到索引呢:当sql语句...

  • 索引设计指南

    Sql Server索引设计指南——脑图链接 参考资料:SQL Server 索引设计指南Clustered an...

  • MySQL 如何正确的使用索引

    学习索引,主要是写出更快的sql,当我们写sql的时候,需要明确的知道sql为什么会走索引?为什么有些sql不走索...

  • MySQl优化学习笔记(七)SQL优化简介

    一、SQL优化简介 1、我们平时说的SQL优化就是优化SQl语句和索引(通俗说就是使用什么样的SQL语句能够让索引...

  • mysql(普通索引-单列索引)

    普通索引命名规则 一般性索引用ind_开头,后面跟字段名 demo sql 创建表之前索引(对比demo sql)...

  • MySQL索引知多少

    mysql索引 总结关于mysql的索引,查询优化,SQL技巧等 1 索引类型 B-Tree索引 Hash索引 ...

  • 索引失效

    在编写sql语句时,一般都会用到索引来提升sql性能,但是有些sql语句使用索引是不生效的。 is null 和...

  • sql中强制使用索引

    在工作中遇到sql查询数据较慢时,用explain查看sql索引,发现添加的索引没有生效,那么可以使用强制索引 但...

网友评论

      本文标题:SQL索引

      本文链接:https://www.haomeiwen.com/subject/lujqvftx.html