mysql数据库的索引

day04  MySQL数据库的索引

一、索引概述:

索引是由一张表中的某个列或多列组成,而创建索引的目的是为了更优化管理我们的数据库表,提升我们查询使用数据库表的速度。

二、索引

1、索引的分类:

索引分为多种索引,具体的索引在下图中可以看见

普通索引:不应用任何限制条件的索引,可以在任何类型的数据库中创建。

唯一索引:使用unique参数可以设置唯一索引。必须是唯一的,主键是一种特殊的唯一索引。

全文索引:使用fulltext参数可以设置索引的全文索引,只能够创建在char、varchar或text类型的字段上。查询数据量大是就可以直接使用全文索引。

 单列索引:只对应一个字段的索引,应用该索引是只要保证该索引值对应一个字段即可

 多列索引:在表中的多个字段上创建一个索引。

 空间索引:使用spatial参数设置索引为空间索引。只能建立在空间数据类型上。索引的字段不能为null值。

2、创建索引

基本语法:

        create table 表名(
            属性名1 数据类型[约束条件],
            属性名2 数据类型,
            ...
            [unique | fulltext | spatial | index ] key
            );

2.1、创建普通索引

          create table 表名(
            属性名1 数据类型[约束条件],
            属性名2 数据类型,
            ...
            index(属性名1)
            );

2.2、创建唯一索引

          create table 表名(
            属性名1 数据类型[约束条件],
            属性名2 数据类型,
            ...
            unique index(属性名1)
            );

2.3、创建全文索引

          create table 表名(
            属性名1 数据类型[约束条件],
            属性名2 数据类型,
            ...
            fulltext key (属性名1)
            );

3、在存在的数据库表中创建索引

3.1、创建普通索引

        create index 索引名 on 数据表名称(字段名称);

3.2、创建唯一索引

        create unique index 索引名 on 数据表名称(字段名称);

3.3、创建全文索引

        create fulltext index 索引名 on 数据表名称(字段名称);

3.4、创建单列索引

        create index 索引名 on 数据表名称(字段名称(长度))

3.5、创建单列索引

        create index 索引名 on 数据表名称(字段名称1,字段名称2,...);

3.6、创建空间索引

        create spatial index 索引名 on 数据表名称(字段名称);

4、添加索引

4.1、添加普通索引

        alter table 表名 add index 索引名称(字段名称);

4.2、添加唯一索引

        alter table 表名 add unique index 索引名称(字段名称);

4.3、添加全文索引

        alter table 表名 add fulltext index 索引名称(字段名称);

4.4、添加单列索引

        alter table 表名 add index 索引名称(字段名称(长度));

4.5、添加多列索引

        alter table 表名 add index 索引名称(字段名称,字段名称2...);

4.6、添加空间索引

        alter table 表名 add spatial index 索引名称(字段名称);

5、删除索引

            drop index 索引名 on 数据库表名;

三、结束语:

到这儿,我们的索引就差不多学完了,这些要而是一些比较重要的索引的概念。需要大家掌握好而运用好。谢谢!

时间: 2025-01-31 09:04:39

mysql数据库的索引的相关文章

为MySQL数据库添加索引

为mysql数据库建立索引 转载:http://www.cnblogs.com/cy163/archive/2008/10/27/1320798.html 最普通的情况,是为出现在where子句的字段建一个索引.为方便讲述,我们先建立一个如下的表. Code代码如下: CREATE TABLE mytable ( id serial primary key, category_id int not null default 0, user_id int not null default 0, a

Mysql数据库的索引和视图详解

Mysql数据库的索引和视图详解 索引的概念 数据库的索引与书籍中的目录类似在一本书中,无需阅读整本书,利用目录就可以快速查找所需信息书中的目录是一个词语列表,其中注明了包含各个词的页码数据库索引在数据库中,索引数据库程序无需对整个表进行扫描,就可以在其中找到所需数据数据库中的索引是某个表中一列或若干列的集合,以及物理标识这些值的数据页的逻辑指针清单 索引的作用 设置了合适的索引之后,数据库利用葛总快速的定位技术,能够大大加快查询速率特别是当表很大时,或者查询涉及到多个表时,使用索引可使查询加快

MySQL数据库中索引原理与数据结构

MySQL中的索引分为3种: 1,主键索引:即用主键当唯一索引 2,常规索引:实现方式为B树和哈希表 3,全文索引:实现原理类似倒排索引,常用来查询字段中包含关键字 下面复习下B-TREE和hash-table 1 B-tree B树可以在O(lgn)的时间内实现许多动态集合操作,除了用在数据库索引上,也被用在磁盘查找上. B树是一种多路查找平衡多叉树,具有以下属性: 1,如果根节点不是叶节点,则其至少有两棵子树. 2.每个非根节点所包含的关键字个数 j 满足:┌m/2┐ - 1 <= j <

MYSQL数据库学习----索引和触发器

一:索引 索引是创建在数据库表上,其作用是提高对表中数据的查询速度. 假设数据库中有一张1000条记录的表格,如果没有创建索引的话,用户想通过查询条件查询,实际上是把整个数据库中1000条记录都读取一遍,满足查询条件的就加入结果集中,这样效率很低,如果表中创建了针对查询条件字段的索引,查询的时候会立即找到满足条件的记录加入结果集,不需要遍历过程,这样大大提高了数据库查询效率. 创建索引虽然提高了数据库表格的查询效率,但是也增加了数据库维护速度,因为索引需要占用物理空间,其次每次用户插入,更改,删

solr(四)---将MYSQL数据库做成索引数据源

前面几篇关于solr的文章在导入数据进行分词.索引,都是通过导入本地的XML或者直接在页面上填写XML.但是现实中,很多情况下数据源是来自于数据库的.所以,本文就以mysql为例进行一个较详细的介绍.其使用到的是"dataimport". 1.在conf\solrconfig.xml中添加,增加导入数据功能  <requestHandler name="/dataimport" class="org.apache.solr.handler.datai

为mysql数据库建立索引

前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过一些开发,但却对如何为数据库建立适当的索引所知较少,因此我起了写一篇相关文章的念头. 最普通的情况,是为出现在where子句的字段建一个索引.为方便讲述,我们先建立一个如下的表. Code代码如下: CREATE TABLE mytable ( id serial primary key, cate

[转]为mysql数据库建立索引

前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过一些开发,但却对如何为数据库建立适当的索引所知较少,因此我起了写一篇相关文章的念头. 最普通的情况,是为出现在where子句的字段建一个索引.为方便讲述,我们先建立一个如下的表. Code代码如下: CREATE TABLE mytable ( id serial primary key, cate

mysql数据库(day6)索引,ORM框架

参考博客: http://www.cnblogs.com/wupeiqi/articles/5713323.html http://www.cnblogs.com/wupeiqi/articles/5716963.html内容回顾: 参考博客: http://www.cnblogs.com/wupeiqi/articles/5713323.html http://www.cnblogs.com/wupeiqi/articles/5716963.html 内容回顾: 1. 数据库是什么 2. My

Python全栈 MySQL 数据库 (索引、数据导入、导出)

ParisGabriel 每天坚持手写  一天一篇  决定坚持几年 为了梦想为了信仰  开局一张图 表字段重命名(change)  alter table 表名 change 原名 新名 数据类型: SQL查询 执行顺序: 3. select ...聚合函数 from 表名 1. where ... 2. group by... 4. having... 5. order by... 6. limit... group by 语句 作用:给查询结果进行分组 注意: 1.group by之后的字段