最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL中索引的定義以及操作新手教程

 更新時間:2022年08月25日 10:23:08   作者:1?+?1=王  
索引是對數(shù)據(jù)庫表中一列或多列的值進行排序的一種結(jié)構,在關系數(shù)據(jù)庫中,索引是一種與表有關的數(shù)據(jù)庫結(jié)構,下面這篇文章主要給大家介紹了關于MySQL中索引的定義以及操作的相關資料,需要的朋友可以參考下

索引的定義

數(shù)據(jù)庫中的索引就像一本書的目錄,可以據(jù)此快速定位數(shù)據(jù)庫中相關數(shù)據(jù)的所在位置。

在數(shù)據(jù)庫中,索引被定義為一種特殊的數(shù)據(jù)結(jié)構,由數(shù)據(jù)庫中的一列或多列組合而成,可以用來快速查詢數(shù)據(jù)表中某一特定值的記錄。

索引是在表的字段的基礎上建立的一種數(shù)據(jù)庫對象,它由DBA或者表的擁有者創(chuàng)建或撤銷,他是創(chuàng)建表與表之間關聯(lián)關系的基礎。

索引的類型

普通、唯一、主鍵和全文索引

普通索引(INDEX)

普通索引是MySQL中的基本索引類型,允許在定義索引的列中插入空值和重復值。

創(chuàng)建普通索引的幾種方式:

# 1.直接創(chuàng)建索引
create index index_name on table(column(length));

# 2. 以修改表結(jié)構創(chuàng)建
alter table table_name add index index_name on column(length);

# 3. 創(chuàng)建表的同時創(chuàng)建索引
create table user(
	id CHAR(6) not null,
	name CHAR(255) not null,
	primary key(id),
	index user_name(name(length));
)

唯一索引(UNIQUE INDEX)

唯一索引指索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。

創(chuàng)建唯一索引的幾種方式:

# 1.直接創(chuàng)建索引
create unique index index_name on table(column(length));

# 2. 以修改表結(jié)構創(chuàng)建
alter table table_name add unique index index_name on column(length);

# 3. 創(chuàng)建表的同時創(chuàng)建索引
create table user(
	id CHAR(6) not null,
	name CHAR(255) not null,
	primary key(id),
	unique index user_name(name(length));
)

主鍵索引(PRIMARY KEY)

主鍵索引是一種特殊的唯一索引,一個表只能有一個主鍵,不允許有空值。

全文索引(FULLTEXT)

全文索引的類型為FULLTEXT,表示在定義索引的列上支持值的全文查找,允許插入重復值或空值。

全文索引主要用來查找文本中的關鍵字,而不是直接與索引中的值相比較。

MySQL中只有MyISAM存儲引擎支持全文索引。

全文索引可以在進行創(chuàng)建表、更新表和創(chuàng)建索引時使用,目前只支持CHAR、VARCHAR、TEXT列創(chuàng)建全文索引。

單列索引和組合索引

  • 單列索引

單列索引即一個索引只包含單個列,一個表可以有多個單列索引。

  • 組合索引

組合索引是指組合表的多個字段創(chuàng)建的索引,,只有在查詢條件中使用了創(chuàng)建索引時的第一個字段,索引才會被使用。遵循最左前綴匹配原則

聚集索引和非聚集索引

  • 聚集索引

聚集索引是索引結(jié)構和數(shù)據(jù)一起存放的索引,索引結(jié)構的葉子節(jié)點上包含著該行的所有信息,找到索引也就找到了數(shù)據(jù)。

  • 非聚集索引

非聚集索引是索引結(jié)構和數(shù)據(jù)分開存放的索引,索引結(jié)構的葉子節(jié)點指向了數(shù)據(jù)的對應行,當需要訪問數(shù)據(jù)時,在內(nèi)存中先搜索索引,然后通過索引找到磁盤相應數(shù)據(jù)。

聚集索引非聚集索引
一個表只能有一個一個表可以有多個
物理連續(xù)邏輯連續(xù),物理不連續(xù)
查詢快,插入慢(需要移動物理位置)回表查詢
索引的葉節(jié)點就是數(shù)據(jù)節(jié)點索引的葉節(jié)點仍然是索引節(jié)點,通過一個指針指向?qū)臄?shù)據(jù)塊。

索引的創(chuàng)建原則

1. 創(chuàng)建索引由專人完成

  • 索引由DBA或表的擁有者負責創(chuàng)建和撤銷,其他用戶不能隨意操作。
  • 索引由系統(tǒng)自動選擇,或由用戶打開,用戶可執(zhí)行重建索引操作。

2.是否創(chuàng)建索引取決于表的數(shù)據(jù)量

  • 基本表中記錄的數(shù)量越多,記錄越長,越有必要創(chuàng)建索引。創(chuàng)建索引后,查詢速度的提升效果會很明顯。要避免對經(jīng)常更新的表創(chuàng)建過多的索引,索引中的列也要盡可能少。
  • 數(shù)據(jù)量小的表最好不要使用索引。由于數(shù)據(jù)較少,查詢花費的時間可能比遍歷索引的時間還要短,因此,創(chuàng)建索引可能不會產(chǎn)生優(yōu)化效果。對經(jīng)常用于查詢的字段應該創(chuàng)建索引,但要避免添加不必要的字段。
  • 索引要根據(jù)數(shù)據(jù)查詢或數(shù)據(jù)處理的要求確定是否創(chuàng)建。對于查詢頻度高、實時性要求高的數(shù)據(jù)一定要建立索引。

3.索引數(shù)量要適度

  • 索引文件占用文件目錄和存儲空間,因此索引過多會加重系統(tǒng)負擔。
  • 索引需要自身維護。當基本表的數(shù)據(jù)增加、刪除或修改時,索引也會進行調(diào)整和更新,索引文件也要隨之變化,以保持與基本表一致。
  • 索引過多會影響數(shù)據(jù)增、刪、改的速度。索引并非越多越好,-張表中如果有大量的索引,不僅占用磁盤空間,而且還會影響INSERT、DELETE、UPDATE等操作的性能。

4.避免使用索引的情形

(1)包含太多重復值的字段。

(2)查詢中很少被引用的字段。

(3)值特別長的字段。

(4)查詢返回率很高的字段。

(5)具有很多NULL值的字段。

(6)需要經(jīng)常增、刪、改的字段。

(7)記錄較少的基本表。

(8)需要頻繁、大批量進行數(shù)據(jù)更新的基本表。

索引操作

創(chuàng)建索引

create table <table_name> [<fields_name> type]
[UNIQUE|FULLTEXT][INDEX|KEY] 
<index_name> (<column_name > [length]) [ASC|DESC]

查看索引

show index from <table_name> [from <database_name>]

刪除索引

1.刪除索引

drop index <index_name> from <table_name>

2.通過修改表結(jié)構刪除

alter table <table_name> drop index <index_name>

總結(jié)

到此這篇關于MySQL中索引的定義以及操作的文章就介紹到這了,更多相關MySQL索引定義及操作內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Advanced SQL Injection with MySQL

    Advanced SQL Injection with MySQL

    Advanced SQL Injection with MySQL...
    2006-12-12
  • mysql修改數(shù)據(jù)庫編碼(數(shù)據(jù)庫字符集)和表的字符編碼的方法

    mysql修改數(shù)據(jù)庫編碼(數(shù)據(jù)庫字符集)和表的字符編碼的方法

    Mysql數(shù)據(jù)庫是一個開源的數(shù)據(jù)庫,應用非常廣泛。以下是修改mysql數(shù)據(jù)庫的字符編碼的操作過程和將表的字符編碼轉(zhuǎn)換成utf-8的方法,需要的朋友可以參考下
    2014-03-03
  • 解決phpstudy無法啟動MySQL服務的三種方法小結(jié)

    解決phpstudy無法啟動MySQL服務的三種方法小結(jié)

    本文主要介紹了光速解決phpstudy無法啟動MySQL服務的三種方法小結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-09-09
  • MySQL數(shù)據(jù)庫從安裝到理解

    MySQL數(shù)據(jù)庫從安裝到理解

    本文詳細記錄了在基于Debian/Ubuntu的Linux系統(tǒng)上,從零開始安裝、配置、使用乃至徹底卸載MySQL的全過程,文章深入剖析了MySQL的邏輯架構,包括連接層、核心服務層和存儲引擎層,感興趣的朋友跟隨小編一起看看吧
    2026-01-01
  • MySQL中rank() over、dense_rank() over、row_number() over用法介紹

    MySQL中rank() over、dense_rank() over、row_number()&n

    本文主要介紹了MySQL中rank() over、dense_rank() over、row_number() over用法介紹,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • mysql正確刪除數(shù)據(jù)的方法(drop,delete,truncate)

    mysql正確刪除數(shù)據(jù)的方法(drop,delete,truncate)

    這篇文章主要給大家介紹了關于mysql正確刪除數(shù)據(jù)的相關資料,DELETE語句是MySQL中最常用的刪除數(shù)據(jù)的方式之一,但也有幾種其他方法來實現(xiàn),需要的朋友可以參考下
    2023-10-10
  • SQL函數(shù)將某個字段合并在一起的操作

    SQL函數(shù)將某個字段合并在一起的操作

    這篇文章主要介紹了SQL函數(shù)將某個字段合并在一起的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Mysql鎖機制,行鎖表鎖的使用詳解

    Mysql鎖機制,行鎖表鎖的使用詳解

    這篇文章主要介紹了Mysql鎖機制,行鎖表鎖的使用,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2025-06-06
  • mysql中DATE_FORMAT()函數(shù)的具體使用

    mysql中DATE_FORMAT()函數(shù)的具體使用

    在MySQL中,DATE_FORMAT()函數(shù)用于將日期/時間類型的值按照指定的格式進行格式化輸出,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • Mysql邏輯架構詳解

    Mysql邏輯架構詳解

    今天小編就為大家分享一篇關于Mysql邏輯架構詳解,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-01-01

最新評論

罗甸县| 石城县| 金坛市| 和龙市| 石嘴山市| 义马市| 永德县| 博乐市| 徐水县| 嘉义市| 河间市| 锡林浩特市| 西充县| 南投市| 锡林郭勒盟| 长泰县| 政和县| 于都县| 佛坪县| 武定县| 石阡县| 揭阳市| 舒城县| 淳安县| 沈阳市| 荃湾区| 昆明市| 榆社县| 区。| 饶平县| 阿拉尔市| 元阳县| 荃湾区| 汤原县| 忻城县| 金门县| 屏东市| 北海市| 朝阳市| 余庆县| 水富县|