国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > MySQL > 正文

MySQL的索引詳解

2024-07-24 12:50:42
字體:
來源:轉載
供稿:網友

一. 索引基礎

1.1 簡介

在MySQL中,索引(index)也叫做“鍵(key)”,它是存儲引擎用于快速找到記錄的一種數據結構。

索引對于良好的性能非常關鍵,尤其是當表中的數據量越來越大時,索引對性能的影響就愈發重要。

索引優化應該是對查詢性能優化最有效的手段,創建一個真正最優的索引經常需要重寫SQL查詢語句。

1.2 索引的工作原理

要理解MySQL中索引的工作原理,最簡單的方法就是去看一看一本書的索引部分:比如你想在一本書中尋找某個主題,一般會先看書的索引目錄,找到對應的章節、對應的頁碼后就可以快速找到你想看的內容。

在MySQL中,存儲引擎用類似的方法使用索引,其先在索引中查找對應的值,然后根據匹配的索引記錄找到對應的數據行,最后將數據結果集返回給客戶端。

1.3 索引的類型

在MySQL中,通常我們所指的索引類型,有以下幾種:

常規索引

常規索引,也叫普通索引(index或key),它可以常規地提高查詢效率。一張數據表中可以有多個常規索引。常規索引是使用最普遍的索引類型,如果沒有明確指明索引的類型,我們所說的索引都是指常規索引。

主鍵索引

主鍵索引(Primary Key),也簡稱主鍵。它可以提高查詢效率,并提供唯一性約束。一張表中只能有一個主鍵。被標志為自動增長的字段一定是主鍵,但主鍵不一定是自動增長。一般把主鍵定義在無意義的字段上(如:編號),主鍵的數據類型最好是數值。

唯一索引

唯一索引(Unique Key),可以提高查詢效率,并提供唯一性約束。一張表中可以有多個唯一索引。

全文索引

全文索引(Full Text),可以提高全文搜索的查詢效率,一般使用Sphinx替代。但Sphinx不支持中文檢索,Coreseek是支持中文的全文檢索引擎,也稱作具有中文分詞功能的Sphinx。實際項目中,我們用到的是Coreseek。

外鍵索引

外鍵索引(Foreign Key),簡稱外鍵,它可以提高查詢效率,外鍵會自動和對應的其他表的主鍵關聯。外鍵的主要作用是保證記錄的一致性和完整性。

注意:只有InnoDB存儲引擎的表才支持外鍵。外鍵字段如果沒有指定索引名稱,會自動生成。如果要刪除父表(如分類表)中的記錄,必須先刪除子表(帶外鍵的表,如文章表)中的相應記錄,否則會出錯。 創建表的時候,可以給字段設置外鍵,如 foreign key(cate_id) references cms_cate(id),由于外鍵的效率并不是很好,因此并不推薦使用外鍵,但我們要使用外鍵的思想來保證數據的一致性和完整性。

1.4 索引的方法

在MySQL中,索引是在存儲引擎層實現的,而不是在服務器層。MySQL支持的索引方法,也可以說成是索引的類型(這是廣義層面上的),主要有以下幾種:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 洛隆县| 慈溪市| 桑植县| 新丰县| 青龙| 建瓯市| 新营市| 普洱| 抚顺市| 漯河市| 确山县| 九寨沟县| 武定县| 衡阳县| 临夏市| 通化市| 平顺县| 铜陵市| 清丰县| 奉化市| 丹寨县| 邹平县| 鄱阳县| 郧西县| 宁城县| 定日县| 沁水县| 永春县| 扶风县| 玉田县| 广宁县| 曲松县| 大方县| 宜宾市| 安岳县| 宜昌市| 高陵县| 涞水县| 凌海市| 兰溪市| 江川县|