亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

好程序員Java培訓教程分享MySQL索引優化知識梳理

發布時間:2020-08-10 20:40:02 來源:ITPUB博客 閱讀:162 作者:好程序員 欄目:編程語言

   好程序員 Java 培訓教程分享 MySQL 索引優化知識梳理 MySQL 是當前企業常用的數據庫之一,也是 Java 程序員升值加薪的主要技能。有很多 Java 新人反映在剛開始接觸 MySQL 時會被索引困擾,尤其是索引優化。接下來就給大家簡單梳理一下 MySQL 索引優化相關知識。

   索引

   索引在MySQL 中也叫 key” ,是存儲引擎快速找到記錄的一種數據結構。其功能是幫助我們快速匹配查找到需要的數據行,相當于超市里的導購員、書本里的目錄。

   基數

   單個列唯一鍵(distict_keys) 的數量叫做基數。

   回表

   當對一個列創建索引之后,索引會包含該列的鍵值及鍵值對應行所在的rowid 。通過索引中記錄的 rowid 訪問表中的數據就叫回表。回表次數太多會嚴重影響 SQL 性能,如果回表次數太多,就不應該走索引掃描,應該直接走全表掃描。

   索引優化規則:

   如果MySQL 估計使用索引比全表掃描還慢,則不會使用索引。

   返回數據的比例是重要的指標,比例越低越容易命中索引,記住這個范圍值——30%

   索引的分類

   主鍵索引:一種特殊的唯一索引,不允許有空值。一般是在建表的時候同時創建主鍵索引。注意,一個表只能有一個主鍵。

   單值索引:一個索引只包含單個列,一個表可以由多個單值索引。

   唯一索引:唯一索引列的值必須唯一,但允許有空值。如果是組合索引,則列值的組合必須唯一。

   復合索引:即一個索引包含多個列,多用于避免回表查詢。

   全文索引:索引的是內容中的關鍵詞,用于全文檢索。

   索引的存儲原理

   DB 在執行一條 SQL 語句的時候,默認的方式是根據搜索條件進行全表掃描,遇到匹配條件的就加入搜索結果集合。

   如果我們對某一字段增加索引,查詢時就會先去索引列表中快速定位到特定值的行數,大大減少遍歷匹配的行數,所以能明顯增加查詢的速度。

   添加索引的話,首先去索引列表中查詢,而我們的索引列表是B 類樹的數據結構,查詢的時間復雜度為 O(log2N) ,定位到特定值得行就會非常快,所以其查詢速度就會非常快。

   什么時候適合添加索引?

   1) 主鍵自動建立主鍵索引 ( 唯一索引 );

   2)where 字句中的列,頻繁作為查詢字段的列 ;

   3) 表連接關聯的列 ;

   4) 排序用到的列 ;

   5) 列的基數越大 ( 選擇性大 ) ,索引的效率就越高。

   不適合索引的情況:

   1) 表記錄太少 ;

   2) 頻繁修改的字段 ;

   3) 數據重復且分布平均的字段。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

临沂市| 新河县| 霍林郭勒市| 安宁市| 贡嘎县| 祥云县| 杭州市| 阿拉善左旗| 桓仁| 平远县| 聂荣县| 图木舒克市| 开阳县| 镇沅| 喀喇| 靖远县| 青岛市| 长岭县| 宣城市| 高唐县| 溧水县| 特克斯县| 西贡区| 县级市| 思茅市| 武宣县| 南昌县| 时尚| 屯门区| 靖江市| 灵台县| 忻城县| 玛曲县| 陈巴尔虎旗| 荔波县| 阳朔县| 深州市| 丰县| 甘肃省| 象州县| 盘锦市|