sqlite 復合唯一索引 SQLite 索引

2021-10-12 15:12:44 字數 1826 閱讀 4107

索引是一種特殊的查詢表,可以使用搜尋引擎的資料庫,以加快資料檢索。簡單地說,索引是乙個指標,表中的資料。乙個資料庫中的索引是非常相似在一本書的背部的索引。

例如,如果你想在一本書中引用的所有頁面討論某個話題,先參考索引,按字母順序列出所有主題,再交由乙個或多個特定的頁碼。

索引有助於加快select查詢和where子句,但它會減慢資料的輸入,update和insert語句。索引可以建立或刪除,但資料不會影響。

建立索引涉及create index語句,它允許命名的索引,索引指定表的一列或多列,並指示索引是否在公升序或降序排列。

索引也可以是唯一的,類似unique約束,在列上有乙個索引的列或組合索引防止重複條目。

create index命令:

create index的基本語法如下:

create index index_name on table_name;

單列索引:

單列索引是乙個只有基於乙個表的列上建立。基本語法如下:

create index index_name

on table_name(column_name);

唯一索引:

使用唯一索引不僅是效能,同時也為資料的完整性。唯一索引不允許任何重複的值插入到表中。基本語法如下:

create index index_name

on table_name(column_name);

復合索引:

組合索引是乙個表的兩個或多個列上的索引。基本語法如下:

create index index_name

on table_name(column1,column2);

是否要建立乙個單列索引或組合索引,考慮到列,可以使用非常頻繁查詢的where子句作為過濾條件。

應該有一列,單列索引應該是選擇。如果有兩個或多個列中經常使用的where子句作為過濾器,組合索引將是最好的選擇。

隱式索引:

隱式式索引是由資料庫伺服器建立乙個物件時,會自動建立索引。索引自動建立的主鍵約束和唯一約束。

例子下面是乙個例子,我們將建立乙個索引表company的 薪水列:

sqlite>create index salary_index on company(salary);

現在,讓我們列出了所有的索引,company表使用.indices命令​​如下:

sqlite>.indices company

這將產生以下結果,其中sqlite_autoindex_company_1是建立表本身時建立了乙個隱式索引。

salary_index

sqlite_autoindex_company_1

可以列出所有的索引資料庫範圍如下:

sqlite>select*from sqlite_master where type='index';

drop index命令:

乙個索引可以使用sqlite drop命令刪除。應注意當刪除索引,因為效能可能會減緩或改善。

基本語法如下:

drop index index_name;

可以使用下面的語句來刪除以前建立的索引:

sqlite>drop index salary_index;

索引什麼情況避免使用?

雖然索引的目的在於提高資料庫的效能,有時間時,應避免。使用索引時,應重新考慮下列準則:

索引不應該使用較小的表上。

有頻繁的,大批量的更新或插入操作的表。

索引不應使用含有大量的null值的列。

頻繁操作的列都將不會被索引。

¥ 我要打賞

糾錯/補充

收藏加qq群啦,易百教程官方技術學習群

注意:建議每個人選自己的技術方向**,同乙個qq最多限加 3 個群。

sqlite 復合唯一索引 SQLite索引

索引 index 是一種特殊的查詢表,資料庫搜尋引擎用來加快資料檢索。簡單地說,索引是乙個指向表中資料的指標。乙個資料庫中的索引與一本書後邊的索引是非常相似的。例如,如果您想在一本討論某個話題的書中引用所有頁面,您首先需要指向索引,索引按字母順序列出了所有主題,然後指向乙個或多個特定的頁碼。索引有助...

sqlite 復合唯一索引 SQLite 索引

sqlite 索引 index 索引 index 是一種特殊的查詢表,資料庫搜尋引擎用來加快資料檢索。簡單地說,索引是乙個指向表中資料的指標。乙個資料庫中的索引與一本書的索引目錄是非常相似的。拿漢語字典的目錄頁 索引 打比方,我們可以按拼音 筆畫 偏旁部首等排序的目錄 索引 快速查詢到需要的字。索引...

Oracle的各種索引(普通 唯一 復合)

索引對於優化資料庫查詢效率方面有著非常巨大的作用,下面是乙個簡單索引查詢效率示例,希望能幫到一些朋友。前提 範例表user info,通過儲存過程插入6萬條資料。表結構 儲存過程 begin declare i int set i 1 while i 60000 do insert into use...