日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)數(shù)據(jù)庫教程:MySQL索引(Index)是什么?為什么要使用索引?

索引是一種特殊的數(shù)據(jù)庫結(jié)構(gòu),由數(shù)據(jù)表中的一列或多列組合而成,可以用來快速查詢數(shù)據(jù)表中有某一特定值的記錄。本節(jié)將詳細(xì)講解索引的含義、作用和優(yōu)缺點(diǎn)。

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),龍崗企業(yè)網(wǎng)站建設(shè),龍崗品牌網(wǎng)站建設(shè),網(wǎng)站定制,龍崗網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,龍崗網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

通過索引,查詢數(shù)據(jù)時不用讀完記錄的所有信息,而只是查詢索引列。否則,數(shù)據(jù)庫系統(tǒng)將讀取每條記錄的所有信息進(jìn)行匹配。

可以把索引比作新華字典的音序表。例如,要查“庫”字,如果不使用音序,就需要從字典的 400 頁中逐頁來找。但是,如果提取拼音出來,構(gòu)成音序表,就只需要從 10 多頁的音序表中直接查找。這樣就可以大大節(jié)省時間。

因此,使用索引可以很大程度上提高數(shù)據(jù)庫的查詢速度,還有效的提高了數(shù)據(jù)庫系統(tǒng)的性能。

為什么要使用索引

索引就是根據(jù)表中的一列或若干列按照一定順序建立的列值與記錄行之間的對應(yīng)關(guān)系表,實(shí)質(zhì)上是一張描述索引列的列值與原表中記錄行之間一 一對應(yīng)關(guān)系的有序表。

索引是 MySQL 中十分重要的數(shù)據(jù)庫對象,是數(shù)據(jù)庫性能調(diào)優(yōu)技術(shù)的基礎(chǔ),常用于實(shí)現(xiàn)數(shù)據(jù)的快速檢索。

在 MySQL 中,通常有以下兩種方式訪問數(shù)據(jù)庫表的行數(shù)據(jù):

1) 順序訪問

順序訪問是在表中實(shí)行全表掃描,從頭到尾逐行遍歷,直到在無序的行數(shù)據(jù)中找到符合條件的目標(biāo)數(shù)據(jù)。

順序訪問實(shí)現(xiàn)比較簡單,但是當(dāng)表中有大量數(shù)據(jù)的時候,效率非常低下。例如,在幾千萬條數(shù)據(jù)中查找少量的數(shù)據(jù)時,使用順序訪問方式將會遍歷所有的數(shù)據(jù),花費(fèi)大量的時間,顯然會影響數(shù)據(jù)庫的處理性能。

2) 索引訪問

索引訪問是通過遍歷索引來直接訪問表中記錄行的方式。

使用這種方式的前提是對表建立一個索引,在列上創(chuàng)建了索引之后,查找數(shù)據(jù)時可以直接根據(jù)該列上的索引找到對應(yīng)記錄行的位置,從而快捷地查找到數(shù)據(jù)。索引存儲了指定列數(shù)據(jù)值的指針,根據(jù)指定的排序順序?qū)@些指針排序。

例如,在學(xué)生基本信息表 tb_students 中,如果基于 student_id 建立了索引,系統(tǒng)就建立了一張索引列到實(shí)際記錄的映射表。當(dāng)用戶需要查找 student_id 為 12022 的數(shù)據(jù)的時候,系統(tǒng)先在 student_id 索引上找到該記錄,然后通過映射表直接找到數(shù)據(jù)行,并且返回該行數(shù)據(jù)。因?yàn)閽呙杷饕乃俣纫话氵h(yuǎn)遠(yuǎn)大于掃描實(shí)際數(shù)據(jù)行的速度,所以采用索引的方式可以大大提高數(shù)據(jù)庫的工作效率。

簡而言之,不使用索引,MySQL 就必須從第一條記錄開始讀完整個表,直到找出相關(guān)的行。表越大,查詢數(shù)據(jù)所花費(fèi)的時間就越多。如果表中查詢的列有一個索引,MySQL 就能快速到達(dá)一個位置去搜索數(shù)據(jù)文件,而不必查看所有數(shù)據(jù),這樣將會節(jié)省很大一部分時間。

索引的優(yōu)缺點(diǎn)

索引有其明顯的優(yōu)勢,也有其不可避免的缺點(diǎn)。

優(yōu)點(diǎn)

索引的優(yōu)點(diǎn)如下:

  • 通過創(chuàng)建唯一索引可以保證數(shù)據(jù)庫表中每一行數(shù)據(jù)的唯一性。
  • 可以給所有的 MySQL 列類型設(shè)置索引。
  • 可以大大加快數(shù)據(jù)的查詢速度,這是使用索引最主要的原因。
  • 在實(shí)現(xiàn)數(shù)據(jù)的參考完整性方面可以加速表與表之間的連接。
  • 在使用分組和排序子句進(jìn)行數(shù)據(jù)查詢時也可以顯著減少查詢中分組和排序的時間

缺點(diǎn)

增加索引也有許多不利的方面,主要如下:

  • 創(chuàng)建和維護(hù)索引組要耗費(fèi)時間,并且隨著數(shù)據(jù)量的增加所耗費(fèi)的時間也會增加。
  • 索引需要占磁盤空間,除了數(shù)據(jù)表占數(shù)據(jù)空間以外,每一個索引還要占一定的物理空間。如果有大量的索引,索引文件可能比數(shù)據(jù)文件更快達(dá)到最大文件尺寸。
  • 當(dāng)對表中的數(shù)據(jù)進(jìn)行增加、刪除和修改的時候,索引也要動態(tài)維護(hù),這樣就降低了數(shù)據(jù)的維護(hù)速度。

使用索引時,需要綜合考慮索引的優(yōu)點(diǎn)和缺點(diǎn)。

索引可以提高查詢速度,但是會影響插入記錄的速度。因?yàn)?,向有索引的表中插入記錄時,數(shù)據(jù)庫系統(tǒng)會按照索引進(jìn)行排序,這樣就降低了插入記錄的速度,插入大量記錄時的速度影響會更加明顯。這種情況下,最好的辦法是先刪除表中的索引,然后插入數(shù)據(jù),插入完成后,再創(chuàng)建索引。


網(wǎng)站標(biāo)題:創(chuàng)新互聯(lián)數(shù)據(jù)庫教程:MySQL索引(Index)是什么?為什么要使用索引?
文章源于:http://www.5511xx.com/article/djhcphi.html