<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 索引 ## 什么是索引 >索引是存儲引擎用于快速找到記錄的一種數據結構 ### 索引有什么好處? * 減少查詢需要掃描的數據量(加快了查詢速度) * 減少服務器的排序操作和創建臨時表的操作(加快了groupby和orderby等操作) * 將服務器的隨機IO變為順序IO(加快查詢速度). ### 索引有什么壞處? * 索引占用磁盤或者內存空間 * 減慢了插入更新操作的速度 ### 索引種類 >邏輯角度 1. **「主鍵索引」**(`PRIMARY KEY`):主鍵索引一般都是在創建表的時候指定,**「一個表只有一個主鍵索引」**,特點是**「唯一、非空」**。 2. **「唯一索引」**(`UNIQUE`):唯一索引具有的特點就是唯一性,可以在創建表的時候指定,也可以在創建表后創建。 3. **「普通索引」**(`INDEX`):普通索引唯一的作用就是加快查詢。 4. **「組合索引」**(`INDEX`):組合索引是創建一個**「多個字段的索引」**,這個概念是相對于上上面的單列索引而言,組合索引查詢遵循**「最左前綴原則」**。 5. **「全文索引」**(`FULLTEXT`):全文索引是針對一些大的**「文本字段」**創建的索引,也稱為**「全文檢索」**。 >物理存儲 1. 聚簇索引 關系表記錄的物理順序與索引的邏輯順序相同,一張表最多也只能存在一個聚簇索引,而且主鍵值和所有列數據放在一起 2. 非聚簇索引 索引文件和數據文件是分開的,索引文件只存儲了值的地址 >前綴索引 在對一個比較長的字符串進行索引時,可以僅索引開始的一部分字符,這樣可以大大的節約索引空間,從而提高索引效率.但是這樣也會降低索引的選擇性. ![](https://img.kancloud.cn/14/af/14afb1da5ce7cd9d6278ecdfcf0ca495_1481x681.png) >聯合索引 組合索引即用多個字段創建一個索引,組合索引能夠避免**「回表查詢」**,相對于多字段的單列索引,組合索引的查詢效率更高。 #### 什么是回表查詢? **通過二級索引查詢數據,得不到完整的數據行,需要再次查詢主鍵索引來獲得數據行** #### 索引覆蓋 **索引的葉子節點已經包含了查詢的數據,沒必要再回表進行查詢。** #### 索引下推 **就是在執行sql查詢的時候,會將一部分的索引列的判斷條件傳遞給存儲引擎,由存儲引擎通過判斷是否符合條件,只有符合條件的數據才會返回給Mysql服務器** ### 索引碎片 在索引的創建刪除過程中,不可避免的會產品索引碎片,當然還有數據碎片,我們可以通過執行`optimize table xxx`來重新整理索引及數據,對于不支持此命令的存儲引擎來說,可以通過一條無意義的alter語句來觸發整理,比如:將表的存儲引擎更換為當前的引擎, `alter table xxxx engine=innodb` #### 碎片的分類? 內部碎片:對于當前頁的數據來說,我們**更新**了某條數據的某個列,造成當前頁不能容納數據,造成了頁的分裂 外部碎片:對于當前頁的數據來說,**新增**一條數據,造成了頁的分裂 >數據結構 1. B+樹 2. hash 3. fulltext 4. R-tree
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看