(2.8)Mysql之SQL基礎——索引的分類與使用
阿新 • • 發佈:2019-02-15
中標 var chang mysq type add har 滿足 空間
(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 ontest101(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就是在完成這樣的工作.
公式:
(2.8)Mysql之SQL基礎——索引的分類與使用