首页
/
每日頭條
/
科技
/
數據庫索引底層解析
數據庫索引底層解析
更新时间:2025-10-28 11:16:05

數據庫索引底層解析?【本文詳細介紹了數據庫的基礎知識之索引的基本概念和常用操作,歡迎讀者朋友們閱讀、轉發和收藏】,現在小編就來說說關于數據庫索引底層解析?下面内容希望能幫助到你,我們來一起看看吧!

數據庫索引底層解析(數據庫基礎之索引)1

數據庫索引底層解析

【本文詳細介紹了數據庫的基礎知識之索引的基本概念和常用操作,歡迎讀者朋友們閱讀、轉發和收藏!】

1 基本概念1.1 索引的概念

索引是關系數據庫中用于存放每一條記錄的一種對象,主要目的是加快數據的讀取速度和完整性檢查。建立索引是一項技術性要求高的工作。一般在數據庫設計階段的與數據庫結構一道考慮。應用系統的性能直接與索引的合理直接有關。

1.2 索引的優點

1 、通過創建唯一索引,保證數據庫表每行數據的唯一性

2 、大大加快數據查詢速度

3 、在使用分組和排序進行數據查詢時,可以顯著減少查詢中分組和排序的時間

1.3 索引的缺點

1 、維護索引需要耗費數據庫資源

2 、索引需要占用磁盤空間,索引文件可能比數據文件更快達到最大文件尺寸

3 、當對表的數據進行增删改的時候,因為要維護索引,速度會受到影響

1.4 索引的操作

創建索引

在執行 CREATE TABLE 語句時可以創建索引,也可以單獨用 CREATE INDEX 或 ALTER TABLE 來為表增加索引。

1 . ALTER TABLE

ALTER TABLE 用來創建普通索引、 UNIQUE 索引或 PRIMARY KEY 索引。

ALTER TABLE table_name ADD INDEX index_name (column_list) ALTER TABLE table_name ADD UNIQUE (column_list) ALTER TABLE table_name ADD PRIMARY KEY (column_list)

其中 table_name 是要增加索引的表名, column_list 指出對哪些列進行索引,多列時各列之間用逗号分隔。索引名 index_name 可選,缺省時, MySQL 将根據第一個索引列賦一個名稱。另外, ALTER TABLE 允許在單個語句中更改多個表,因此可以在同時創建多個索引。

2 . CREATE INDEX

CREATE INDEX 可對表增加普通索引或 UNIQUE 索引。

CREATE INDEX index_name ON table_name (column_list) CREATE UNIQUE INDEX index_name ON table_name (column_list)

table_name 、 index_name 和 column_list 具有與 ALTER TABLE 語句中相同的含義,索引名不可選。另外不能用 CREATE INDEX 語句創建 PRIMARY KEY 索引。

3 .索引類型

在創建索引時,可以規定索引能否包含重複值。如果不包含,則索引應該創建為 PRIMARY KEY 或 UNIQUE 索引。對于單列惟一性索引,這保證單列不包含重複的值。對于多列惟一性索引,保證多個值的組合不重複。

PRIMARY KEY 索引和 UNIQUE 索引非常類似。事實上, PRIMARY KEY 索引僅是一個具有名稱 PRIMARY 的 UNIQUE 索引。這表示一個表隻能包含一個 PRIMARY KEY ,因為一個表中不可能具有兩個同名的索引。

删除索引

可利用 ALTER TABLE 或 DROP INDEX 語句來删除索引。類似于 CREATE INDEX 語句, DROP INDEX 可以在 ALTER TABLE 内部作為一條語句處理,語法如下。

DROP INDEX index_name ON talbe_name ALTER TABLE table_name DROP INDEX index_name ALTER TABLE table_name DROP PRIMARY KEY

其中,前兩條語句是等價的,删除掉 table_name 中的索引 index_name 。

第 3 條語句隻在删除 PRIMARY KEY 索引時使用,因為一個表隻可能有一個 PRIMARY KEY 索引,因此不需要指定索引名。如果沒有創建 PRIMARY KEY 索引,但表具有一個或多個 UNIQUE 索引,将删除第一個 UNIQUE 索引。

如果從表中删除了某列,則索引會受到影響。對于多列組合的索引,如果删除其中的某列,則該列也會從索引中删除。如果删除組成索引的所有列,則整個索引将被删除。

下面的 SQL 語句對 students 表在 sid 上添加 PRIMARY KEY 索引。

ALTER TABLE students ADD PRIMARY KEY (sid)

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
手機屏幕碎了其實很簡單自己動手
手機屏幕碎了其實很簡單自己動手
手機作為現代社會每個人必不可少的設備,每個人都視若珍寶。手機屏幕作為手機上最容易摔碎的部件,經常一個不小心掉在地上就摔碎了。可是有些屏幕摔碎了,卻能夠繼續使用;有些屏幕看起來沒碎,卻沒辦法觸控了,這又是什麼原因呢?今天彥成給大家科普一下,内...
2025-10-28
簡述數據在計算機中如何存儲
簡述數據在計算機中如何存儲
一、計算機中的5種不同的數據類型數字、文本、音頻、圖像、視頻二、不同的數據類型如何以位模式存儲在計算機内部1、位(bit,binarydigit縮寫)是存儲在計算機中的最小單位:0或1,代表設備的某一種狀态位模式(位流),可以理解為計算機内...
2025-10-28
海事 監管指揮系統
海事 監管指揮系統
浙江新聞客戶端通訊員劉一樂林上軍王雨琦打開“數字航運智控在線”系統,登錄進入企業頁面,填寫生産經營數據……近日,不到半小時,浙江省舟山市中拓海運有限公司體系總監何挺就完成了企業年度核查申請。2021年,該智控應用系統覆蓋航運及其輔助企業66...
2025-10-28
oppocoloros11息屏樣式怎麼用
oppocoloros11息屏樣式怎麼用
ColorOS12上的負一屏進行了全面的升級,不僅有了全新的設計,功能也從原來的訂閱式改為了卡片式,不僅看起來更簡單直觀,功能也變得更加高效實用。但如何好好地利用這些功能,打造出人性化的負一屏,也是需要一點“功夫”的,所以這篇文章和大家聊聊...
2025-10-28
農村用手機信号放大器有用麼
農村用手機信号放大器有用麼
農村用手機信号放大器有用麼?手機信号放大器是有用,但是如果使用不當,可能并不能改善信号,反而會使情況惡化,下面我們就來說一說關于農村用手機信号放大器有用麼?我們一起去了解并探讨一下這個問題吧!農村用手機信号放大器有用麼手機信号放大器是有用,...
2025-10-28
Copyright 2023-2025 - www.tftnews.com All Rights Reserved