tft每日頭條

 > 科技

 > 數據庫索引底層解析

數據庫索引底層解析

科技 更新时间:2024-08-17 00:19:31

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

數據庫索引底層解析(數據庫基礎之索引)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)

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved