MySQL索引的用處

來源:互聯網
上載者:User

標籤:過程   多個   而在   掃描   組成   應該   尋找   數值   進程   

MySQL索引在MySQL資料庫中,可以有效提高查詢的效率,尤其是查詢資料量非常大時,效果更為明顯,往往能使查詢速度加快成千上萬倍。

MySQL索引是很重要的概念,應用的範圍非常廣。那麼,MySQL索引究竟有何作用呢?下文將帶您一起尋找答案。

MySQL索引作用
在索引列上,除了上面提到的有序尋找之外,資料庫利用各種各樣的快速定位技術,能夠大大提高查詢效率。特別是當資料量非常大,查詢涉及多個表時,使用索引往往能使查詢速度加快成千上萬倍。
例如,有3個未索引的表t1、t2、t3,分別只包含列c1、c2、c3,每個表分別含有1000行資料群組成,指為1~1000的數值,尋找對應值相等行的查詢如下所示。

SELECT c1,c2,c3 FROM t1,t2,t3 WHERE c1=c2 AND c1=c3
此查詢結果應該為1000行,每行包含3個相等的值。在無索引的情況下處理此查詢,必須尋找3個表所有的組合,以便得出與WHERE子句相配的那些行。而可能的組合數目為1000×1000×1000(十億),顯然查詢將會非常慢。
如果對每個表進行索引,就能極大地加速查詢進程。利用索引的查詢處理如下。

(1)從表t1中選擇第一行,查看此行所包含的資料。

(2)使用表t2上的索引,直接定位t2中與t1的值匹配的行。類似,利用表t3上的索引,直接定位t3中與來自t1的值匹配的行。

(3)掃描表t1的下一行並重複前面的過程,直到遍曆t1中所有的行。

在此情形下,仍然對錶t1執行了一個完全掃描,但能夠在表t2和t3上進行索引尋找直接取出這些表中的行,比未用索引時要快一百萬倍。
利用MySQL索引,MySQL加速了WHERE子句滿足條件行的搜尋,而在多表串連查詢時,在執行串連時加快了與其他表中的行匹配的速度。

MySQL索引的用處

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.