美文网首页
MySql 索引使用总结-基础篇

MySql 索引使用总结-基础篇

作者: 编程人生 | 来源:发表于2022-01-05 22:17 被阅读0次

Mysql索引

一.索引概述

简单的说,索引就是对某表中一列或若干列值进行排序的结构.它由该表的一列或者多列的值,以及指向这些列对应存储位置的指针构成.

索引是依赖表建立的,一个表有两部分组成:一部分用来存放表的数据页面,另一部分存放索引页面.由于索引页面比数据页面小的多,在进行数据检索时,系统会先搜索索引页面,从中找到所需数据指针,再通过指针从数据页面中读取数据.这种操作模式类似于图书的目录.

索引的作用

1.使用索引可以明显的提高数据查询的速度.

2.通过对多个字段使用唯一索引,可以保证多个字段的唯一性.

3.在表与表之间连接查询时,如果创建了索引,就可以提高表与表之间的连接速度

4.索引的创建,即有利也有弊,在创建索引时需要权衡利和弊

适合被创建索引的情况

1.经常被查询的字段

2.分组字段

3.主键和外键字段.

4.需要设置唯一性约束的字段.

不适和创建索引的情况

1.在查询中很好用到的字段

2.具有重复值的字段

3.较小的数据表,这种情况使用索引并不能改善任何索引性能.

另外,过多的创建索引,还会占用许多的磁盘空间.

索引的操作

1.创建普通索引

普通索引:就是在创建索引时,不附加任何限制条件,如唯一,非空等,这种类型的索引可以创建在任何数据类型的字段上.

Create table 表名

(列名 数据类型....

INDEX|KEY 索引名(列名i[长度][ASC|DESC])

);

2.在已经存在的表上创建普通索引

Create INDEX 索引名

on 表名 (列名[长度][ASC|DESC])

3.通过ALTER TABLE 语句创建普通索引

ALTER TABLE 表名

ADD INDEX|KEY 索引名(列名[长度][ASC|DESC]);

创建唯一索引

唯一索引和普通索引类似,但唯一索引要求索引的值是唯一的,需要使用关键字UNIQUE标明

创建唯一索引与创建普通索引一样也有三种方式.

一.建表时创建唯一索引,语法规则:

Create table 表名

(

列名 数据类,....

UNIQUE INDEX|KEY 索引名 (列名 i [长度][ASC|DESC]);

);

二.是在已经存在的表上创建唯一索引,语法规则:

Create UNIQUE INDEX 索引名

on 表名(列名[长度][ASC|DESC]);

三.通过ALTER TABLE 语句创建唯一索引,语法规则:

ALTER TABLE 表名

ADD UNIQUE INDEX|KEY 索引名(列名[长度][ASC|DESC]);

创建主键索引

ALTER TABLE 表名

ADD PRIMARY KEY(列名);

创建全文索引

在MySQl 中,提供了一种称为全文索引的技术,主要关联在数据类型为CHAR Varchar 和Text 等的长度字符字段上.

1.创建表时创建全文索引

CREATE TABLE 表名

(

列名 数据类型 ,.....

FULLTEXT INDEX|KEY 索引名 (列名i[长度][ASC|DESC])

);

创建全文索引比普通索引多了一个关键字 FULLTEXT

2.在已经存在的表上创建全文索引

3.通过ALTER Table 语句创建全文索引sql

创建多列索引

1.创建表时创建多列索引

CREATE table 表名

(

列名 数据类型 , .....

INDEX|KEY (列名i[长度][ASC|DESC],列名i[长度][ASC0][DESC],.......)

);

2.在已经存在的表上创建多列索引

语法规则:

CREATE INDEX 索引名

on 表名 (列名 1[长度][ASC|DESC],列名 1[长度][ASC|DESC],....);

3.通过ALTER Table 语句创建多列索引

语法规则:

ALTER TABLE 表名

ADD INDEX|KEY 索引名(列名[长度][ASC|DESC],列名[长度][ASC|DESC],......);

删除索引

DROP INDEX 索引名 on 表名;

相关文章

  • MySql 索引使用总结-基础篇

    Mysql索引 一.索引概述 简单的说,索引就是对某表中一列或若干列值进行排序的结构.它由该表的一列或者多列的值,...

  • 5.2MySQL创建高性能索引考察点

    MySQL索引的基础和类型延伸:MySQL索引的创建原则延伸:MySQL索引的注意事项 索引的基础索引类似于书籍的...

  • 高性能的索引策略

    MySQL查询基础-查询执行过程 MySQL聚簇索引 MySQL覆盖索引 MySQL索引扫描排序 MySQL冗余和...

  • MySQL知识_索引

    目录索引: ლ(′◉❥◉`ლ) 点击此链接 MySQL_博客园链接Mysql基础原理知识点总结狂神说 讲解mysql

  • MySQL 索引及查询优化总结-2018-03-20

    MySQL 索引及查询优化总结 文章《MySQL查询分析》讲述了使用MySQL慢查询和explain命令来定位my...

  • 创建高性能的索引 1

    索引基础 如果 actor_id 列上有索引,这 MySQL 将使用该索引找到 actor_id 为5的列,也就是...

  • MySQL索引知多少

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

  • 高性能MySQL(Chapter 5 创建高性能的索引)

    5.1 索引基础 在MySQL中,存储引擎在使用索引时,先找到索引的对应值,然后根据匹配的索引找到对应的数据行。假...

  • 数据库

    • MySQL 索引使用的注意事项 MySQL 索引使用的注意事项 索引不会包含有NULL值的列使用短索引...

  • Mysql空间索引

    Mysql 空间索引 本文主要根据mysql 8.0的文档翻译总结,如果使用的是mysql 5.7版本,可能会有些...

网友评论

      本文标题:MySql 索引使用总结-基础篇

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