MySQL查询优化(索引优化)-创建索引

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37848710/article/details/80771376
1.PRIMARY KEY(主键索引) 
mysql>ALTER TABLE table_name ADD PRIMARY KEY ( column ) 
2.UNIQUE(唯一索引) 
mysql>ALTER TABLE table_name ADD UNIQUE (column ) 
3.INDEX(普通索引) 
mysql>ALTER TABLE table_name ADD INDEX index_name ( column ) 
4.FULLTEXT(全文索引) 
mysql>ALTER TABLE table_name ADD FULLTEXT ( column ) 
5.多列索引 

mysql>ALTER TABLE table_name ADD INDEX index_name ( column1, column2, column3 )

PRIMARY, INDEX, UNIQUE 这3种是一类
PRIMARY 主键。 就是 唯一 且 不能为空。
INDEX 索引,普通的
UNIQUE 唯一索引。 不允许有重复。

FULLTEXT 是全文索引,用于在一篇文章中,检索文本信息的。

MySQL在创建数据表的时候创建索引

在MySQL中创建表的时候,可以直接创建索引。基本的语法格式如下:

CREATE TABLE 表名(字段名 数据类型 [完整性约束条件],
                  [UNIQUE | FULLTEXT | SPATIAL] INDEX | KEY
                  [索引名](字段名1 [(长度)] [ASC | DESC])
);
  • UNIQUE:可选。表示索引为唯一性索引。
  • FULLTEXT;可选。表示索引为全文索引。
  • SPATIAL:可选。表示索引为空间索引。
  • INDEX和KEY:用于指定字段为索引,两者选择其中之一就可以了,作用是一样的。
  • 索引名:可选。给创建的索引取一个新名称。
  • 字段名1:指定索引对应的字段的名称,该字段必须是前面定义好的字段。
  • 长度:可选。指索引的长度,必须是字符串类型才可以使用。
  • ASC:可选。表示升序排列。
  • DESC:可选。表示降序排列。

Mysql目前主要有以下几种索引方式:FULLTEXT,HASH,BTREE,RTREE。

各种索引的使用情况

(1)对于BTREE这种Mysql默认的索引方式,具有普遍的适用性

(2)由于FULLTEXT对中文支持不是很好,在没有插件的情况下,最好不要使用。其实,一些小的博客应用,只需要在数据采集时,为其建立关键字列表,通过关键字索引,也是一个不错的方法,至少我是经常这么做的。

(3)对于一些搜索引擎级别的应用来说,FULLTEXT同样不是一个好的处理方法,Mysql的全文索引建立的文件还是比较大的,而且效率不是很高,即便是使用了中文分词插件,对中文分词支持也只是一般。真要碰到这种问题,Apache的Lucene或许是你的选择。

(4)正是因为hash表在处理较小数据量时具有无可比拟的素的优势,所以hash索引很适合做缓存(内存数据库)。如mysql数据库的内存版本Memsql,使用量很广泛的缓存工具Mencached,NoSql数据库redis等,都使用了hash索引这种形式。当然,不想学习这些东西的话Mysql的MEMORY引擎也是可以满足这种需求的。

扫描二维码关注公众号,回复: 2907022 查看本文章

猜你喜欢

转载自blog.csdn.net/weixin_37848710/article/details/80771376