SQL 新建索引

2022-09-07 09:03:06 字數 2364 閱讀 3778

-- 唯一索引

altertableexamination_info

adduniqueindexuniq_idx_exam_id(exam_id);

-- 全文索引

altertableexamination_info

addfulltextindexfull_idx_tag(tag);

-- 普通索引

altertableexamination_info

addindexidx_duration(duration);

ysql索引用來快速地尋找那些具有特定值的記錄,所有mysql索引都以b-樹的形式儲存。如果沒有索引,執行查詢時mysql必須從第乙個記錄 開始掃瞄整個表的所有記錄,直至找到符合要求的記錄。表裡面的記錄數量越多,這個操作的代價就越高。如果作為搜尋條件的列上已經建立了索引,mysql無 需掃瞄任何記錄即可迅速得到目標記錄所在的位置。如果表有1000個記錄,通過索引查詢記錄至少要比順序掃瞄記錄快100倍。

總體分析

primary, index, unique 這3種是一類

primary 主鍵。 就是 唯一 且 不能為空。

index 索引,普通的

unique 唯一索引。 不允許有重複。

fulltext 是全文索引,用於在一篇文章中,檢索文字資訊的。

mysql的索引型別:primary, index,unique,fulltext,spaial 有什麼區別?各適用於什麼場合?

舉個例子來說,比如你在為某商場做乙個會員卡的系統。

這個系統有乙個會員表

有下列字段:

會員編號 int

會員姓名 varchar(10)

會員身份證號碼 varchar(18)

會員** varchar(10)

會員住址 varchar(50)

會員備註資訊 text

那麼這個 會員編號,作為主鍵,使用 primary

會員姓名 如果要建索引的話,那麼就是普通的 index

會員身份證號碼 如果要建索引的話,那麼可以選擇 unique (唯一的,不允許重複)

會員備註資訊 , 如果需要建索引的話,可以選擇 fulltext,全文搜尋。

不過 fulltext 用於搜尋很長一篇文章的時候,效果最好。

用在比較短的文字,如果就一兩行字的,普通的 index 也可以。 

建立索引使用說明

普通索引

這是最基本的索引型別,而且它沒有唯一性之類的限制。

建立索引,例如create index 《索引的名字》 on tablename (列的列表);

修改表,例如alter table tablename add index [索引的名字] (列的列表);

建立表的時候指定索引,例如create table tablename ( [...], index [索引的名字] (列的列表) ); 

唯一性索引

這種索引和前面的「普通索引」基本相同,但有乙個區別:索引列的所有值都只能出現一次,即必須唯一。

mysql主鍵:

mysql主鍵是一種唯一性索引,但它必須指定為「primary key」。 

例如「create table tablename ( [...], primary key (列的列表) ); 」。但是,我們也可以通過修改表的方式加入主鍵,例如「alter table tablename add primary key (列的列表); 」。每個表只能有乙個主鍵。

全文索引

mysql從3.23.23版開始支援全文索引和全文檢索。在mysql中,全文索引的索引型別為fulltext。全文索引可以在varchar或者text型別的列上建立。它可以通過create table命令建立,也可以通過alter table或create index命令建立。對於大規模的資料集,通過alter table(或者create index)命令建立全文索引要比把記錄插入帶有全文索引的空表更快。

新建表SQL語句

create table dbo imfile file id int identity 1,1 not null file name nvarchar 500 default file newname varchar 50 default file size int default 1 file ...

SQL 索引 建立索引

create index 語句用於在表中建立索引。在不讀取整個表的情況下,索引使資料庫應用程式可以更快地查詢資料。您可以在表中建立索引,以便更加快速高效地查詢資料。使用者無法看到索引,它們只能被用來加速搜尋 查詢。注釋 更新乙個包含索引的表需要比更新乙個沒有索引的表更多的時間,這是由於索引本身也需要...

SQL優化(SQL 索引)

檢視表定義 show create table users 檢視表的索引 show index from users 你要獲取第乙個表的所有資訊,你說全表掃瞄快呢還是索引掃瞄快呢?所以當你查詢庫 包括left join中的臨時庫 的所有資訊時,資料庫會選擇最優方法 全表掃瞄!s表dept id na...