日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MYsql源码及其剖析

發布時間:2023/12/31 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MYsql源码及其剖析 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

索引基本介紹

索引類型

存儲結構:B Tree索引、Hash索引、FULLTEXT全文索引、R Tree索引

應用層次:普通索引、唯一索引、主鍵索引、復合索引

索引鍵值類型:主鍵索引、輔助索引(二級索引)

數據存儲和索引鍵值邏輯關系:聚集索引(聚簇索引)、非聚集索引(非聚簇索引)

普通索引

CREATE INDEX <索引的名字> ON tablename (字段名);ALTER TABLE tablename ADD INDEX [索引的名字] (字段名);CREATE TABLE tablename ( [...], INDEX [索引的名字] (字段名) );

唯一索引

1.索引字段的值必須唯一,但允許有空值

2.在創建或修改表時追加唯一 約束,就會自動創建對應的唯一索引。

與普通索引相比 增加UNIQUE =》UNIQUE INDEXCREATE UNIQUE INDEX <索引的名字> ON tablename (字段名); ALTER TABLE tablename ADD UNIQUE INDEX [索引的名字] (字段名); CREATE TABLE tablename ( [...], UNIQUE [索引的名字] (字段名) ;

主鍵索引

它是一種特殊的唯一索引,不允許有空值。也會自動創建

CREATE TABLE tablename ( [...], PRIMARY KEY (字段名) ); ALTER TABLE tablename ADD PRIMARY KEY (字段名)

復合索引

復合索引可以代替多個單一索引,相比多個單一索引復合 索引所需的開銷更小。

重要原則就是能用窄索引不用寬索引。更有效

CREATE INDEX <索引的名字> ON tablename (字段名1,字段名2...); ALTER TABLE tablename ADD INDEX [索引的名字] (字段名1,字段名2...); CREATE TABLE tablename ( [...], INDEX [索引的名字] (字段名1,字段名2...) );

何時使用復合索引,要根據where條件建索引,注意不要過多使用索引,過多使用會對更新操作效率有很大影響。

如果表已經建立了(col1,col2),就沒有必要再單獨建立(col1);

如果現在有(col1)索引,如果查 詢需要col1和col2條件,可以建立(col1,col2)復合索引,對于查詢有一定提高。

全文索引

? 待補充 2021年11月30日

索引原理

索引是物理數據頁存儲,在數據文件中(InnoDB,ibd文件),利用數據頁(page)存儲。

索引可以加快檢索速度,但是同時也會降低增刪改操作速度,索引維護需要代價。

二分

hash

B tree

b數的階是由我們自己考慮決定的,m=5時

  • 每個節點最多只有m個子節點。
  • 每個非葉子節點(除了根)具有至少? m/2?子節點。
  • 如果根不是葉節點,則根至少有兩個子節點。
  • 具有k個子節點的非葉節點包含k -1個鍵。
  • 所有葉子都出現在同一水平,沒有任何信息(高度一致)。

B+ tree

非葉子節點不存儲data數據,只存儲索引值。這樣便于存儲更多的索引值

葉子節點包含了所有的索引值和data數據

葉子節點用指針連接,提高區間的訪問性能

  • List item
  • 總結

    以上是生活随笔為你收集整理的MYsql源码及其剖析的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。