MySQL索引

一:索引概述

1、索引是一种将数据库中单列或这多列的值进行排序的结构。

2、通过索引查数据,不但可以提高查询速率,也可以降低服务器负载。当查询数据时,系统可以不用遍历数据表中所有记录,而是查询索引列。

3、但是创建索引和维护需要耗费时间,并且该耗费时间与数据量的大小成正比;另外索引需要占用物理空间,给数据的维护造成很多麻烦。

4、索引可以提高查询速率,但是会影响用户操作数据库的插入操作。因为:插入时数据库系统会按照索引进行排序。

5、所有存储引擎对每个表至少支持16个索引。总索引长度不能超过256字节。

二:索引有两种存储类型,包括BTREE索引和哈希索引,BTREE索引为系统默认索引。

三:索引分类:

1、普通索引:不应用任何条件的索引,可以在任何数据类型中创建。字段本身的约束条件可以判断其值是否为空或唯一。

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

3、全文索引:使用FULLTEXT参数可以设置索引为全文索引。全文索引只能创建在CHAR、VARCHAR、TEXT类型的字段上。只适用于MyISAM存储引擎中。

4、单列索引:只对应一个字段的索引。可以包括以上三种索引方式。

5、多列索引:在表的多个字段中创建一个索引,使用查询时必须使用多个字段中的第一个字段才能使索引生效。

6、空间索引:使用SPATIAL参数可以设置空间索引,只能建立在空间数据模型上。MySQL中只有MyISAM存储引擎支持空间索引。而且索引字段不能为空值,且字段数据类型必须为GEOMETRY、POINT、LINESTRING、POLYGON等类型。

四:查看表结构

show create table normal_index;

五:创建索引语法

1、创建普通索引:任意类型的字段

(1)创建表时创建索引

    create table normal_index(

    id int(11) auto_increment primary key not null, 

    name varchar(64) not null,

    math int(5) not null,

    chiness varchar(64) not null,

    index name_index(name)

    );

(2)在已创建的表中创建索引:

    create index chiness_index on normal_index(chiness);

(3)修改数据表结构添加索引:

    alter table table_name add  unique|fulltext|spatial   index      cloumn_index_name(cloumn);

(4)删除索引:

    drop index index_name on table_name;


2、创建唯一索引:索引字段的值必须唯一

(1)创建表时创建索引

    create table normal_index1(

    id int(11) auto_increment primary key not null,

    name varchar(64) not null,

    math int(5) not null,

    chiness varchar(64) not null,

    unique index name_unique_index(name asc)

    );

(2)在已创建的表中创建索引:

    create unique index chiness_unique_index on normal_index1(chiness);


3、创建全文索引:只能用在char,varchar、text类型的字段上

(书上说使用INNODB存储引擎时,会报错。表示只有MyISAM存储引擎才支持。但是我在mysql8下面使用INNODB存储引擎是可以创建成功。)

(1)创建表时创建索引

    create table normal_index2(

    id int(11) auto_increment primary key not null,

    name varchar(64) not null,

    math int(5) not null,

    chiness varchar(64) not null,

    FULLTEXT index name_fulltext_index(name)

    );

(2)在已创建的表中创建索引:

    create fulltext index chiness_fulltext_index on normal_index2(chiness);


3、创建单列索引:

(1)创建表时创建索引

    create table normal_index3(

    id int(11) auto_increment primary key not null,

    name varchar(64) not null,

    math int(5) not null,

    chiness varchar(64) not null,    

    index name_cloumn_index(name(20))

    );

(2)在已创建的表中创建索引:

    create index chiness_cloumn_index on normal_index3(chiness(20));


3、创建多列索引:查询条件只有使用了第一个字段才会使用到索引

(1)创建表时创建索引

    create table normal_index4(

    id int(11) auto_increment primary key not null,

    name varchar(64) not null,

    math int(5) not null,

    chiness varchar(64) not null,

    index name_cloumns_index(name,math)

    );

(2)在已创建的表中创建索引:

    create index chiness_cloumns_index on normal_index4(chiness,math);


3、创建空间索引:只有MyISAM存储引擎才能支持该类型索引,该字段必须有非空约束,数据类型必须为GEOMETRY、POINT、LINESTRING、POLYGON等类型。

(1)创建表时创建索引

    create table normal_index5(

    id int(11) auto_increment primary key not null,

    name geometry not null,

    math int(5) not null,

    chiness geometry not null,

    spatial index name_spatial_index(name)

    )engine = MyISAM;

(2)在已创建的表中创建索引:

    create spatIal chiness_spatial_index on normal_index5(chiness);

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,324评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,356评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,328评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,147评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,160评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,115评论 1 296
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,025评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,867评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,307评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,528评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,688评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,409评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,001评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,657评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,811评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,685评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,573评论 2 353

推荐阅读更多精彩内容