(2.8)Mysql之SQL基础——索引的分类与使用
按逻辑分类:
1、主键索引(聚集索引)(也是唯一索引,不允许有空值)
2、普通索引或单列索引
3、多列索引(复合索引)
4、唯一索引或非唯一索引(非唯一索引其实就是普通/多列索引)
5、空间索引
6、创建索引的基本形式
7、索引的操作
1.查看索引
2.创建单列索引
3.复合索引
4.唯一索引(允许多个空值,每列唯一)
5.主键索引(不允许空值,唯一)
6.索引的删除
7.删除自增auto_increment
6.创建索引的基本形式
create [unique|fulltext|spatial] index index_name [index_type] on table_name(index_col_name,...) [index_option] [alogorithm_option | lock_option]... index_colname: col_name[(length)][asc | desc]
1.[unique|fulltext|spatial] 可选参数,分别是唯一索引、全文索引、空间索引
2.index 创建索引的关键字,或者也可以用(key)
3.index_col_name 表中要创建索引的列对象
4.index_name 创建的索引名字
5.length 可选参数,索引的长度,只能用于字符串
6.[asc | desc] 索引值得存储方式
最简单最常用的方式:
create index 索引名 on 表名(列名);
create index ix_test101_id on test101(id);
create index ix_test101_name on test101(name(10)); #截取该字段前10个字符作为索引
alter table test101 add index 索引名(列名);
7、索引的操作
0.建表时创建索引
create table test102(
id int primary key auto_increment,
name varchar(12),
description varchar(200),
index ix_test102_description(description)
);
1.查看索引 show index from table_name; 2.单列索引 create index 索引名 on 表名(列名); create index ix_test101_id on test101(id); create index ix_test101_name on test101(name(10)); #截取该字段前10个字符作为索引 alter table test101 add index 索引名(列名); 3.复合索引 create index 索引名 on 表名(列名1,列名2); alter table test101 add index 索引名(列名1,列名2); 4.唯一索引(允许多个空值,每列唯一)
create unique index 索引名 on 表名(列名);
alter table test101 add unique index 索引名(列名);
5.主键索引(不允许空值,唯一)
alter table test101 add primary key (列名)
6.索引的删除 1).单列/多列/唯一索引删除:drop index 索引名 on 表名; or alter table test101 drop
2).主键索引删除: alter table test101 drop primary key;(如果有自增字段,需要先删除自增)
7.删除自增auto_increment
alter table test101 change id int;
8.全文索引(详情参考:倒排索引)
概念:其实就是倒排索引,把文档分词,然后以词为索引搜索,每个词索引上都包含对应的 <词,文档编号,tf(即出现次数)> ,
倒排索引长成什么样子呢?就是图中标记的那样,每个词后面有一个拉链,拉链中存放包含该词的文档编号,利用这个数据结构能快速的找到包含某一个词的所有文档。
词频 (term frequency, TF) 指的是某一个给定的词语在该文件中出现的次数。这个数字通常会被归一化(一般是词频除以文章总词数), 以防止它偏向长的文件。(同一个词语在长文件里可能会比短文件有更高的词频,而不管该词语重要与否。)
但是, 需要注意, 一些通用的词语对于主题并没有太大的作用, 反倒是一些出现频率较少的词才能够表达文章的主题, 所以单纯使用是TF不合适的。权重的设计必须满足:一个词预测主题的能力越强,权重越大,反之,权重越小。所有统计的文章中,一些词只是在其中很少几篇文章中出现,那么这样的词对文章的主题的作用很大,这些词的权重应该设计的较大。IDF就是在完成这样的工作.
公式:
原文:https://www.cnblogs.com/gered/p/10381282.html