Navicat設置MySQL索引+MySQL索引知識


引用:

https://www.cnblogs.com/bypp/p/7755307.html

https://blog.csdn.net/resilient/article/details/82829820

查看當前MySQL存儲引擎:

mysql> show engines;

教程:https://www.cnblogs.com/zhming26/p/6322353.html

 

#0 Navicat操作位置:

#1 索引種類:

1. Fulltext 全文本搜索索引:用於搜索長篇文章。

2. Unique 唯一索引:  

  1.  
    主鍵索引:primary key :加速查找+約束(不為空且唯一)
  2.  
    唯一索引:unique:加速查找+約束 (唯一)

3. 聯合索引:

  1.  
    -primary key(id,name):聯合主鍵索引
  2.  
    -unique(id,name):聯合唯一索引
  3.  
    -index(id,name):聯合普通索引

4. Normal 普通索引:加快搜索。

5. Spatial 空間索引。

#2 索引功能

1. 加快搜索;

2. mysql中的primary key,unique,聯合唯一也都是索引,這些索引除了加速查找以外,還有約束的功能

#3 索引的兩大類型hash與btree

  1.  
    #我們可以在創建上述索引的時候,為其指定索引類型,分兩類
  2.  
    hash類型的索引:查詢單條快,范圍查詢慢
  3.  
    btree類型的索引:b+樹,層數越多,數據量指數級增長(我們就用它,因為innodb默認支持它)
  4.  
     
  5.  
    #不同的存儲引擎支持的索引類型也不一樣
  6.  
    InnoDB 支持事務,支持行級別鎖定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;
  7.  
    MyISAM 不支持事務,支持表級別鎖定,支持 B-tree、Full-text 等索引,不支持 Hash 索引;
  8.  
    Memory 不支持事務,支持表級別鎖定,支持 B-tree、Hash 等索引,不支持 Full-text 索引;
  9.  
    NDB 支持事務,支持行級別鎖定,支持 Hash 索引,不支持 B-tree、Full-text 等索引;
  10.  
    Archive 不支持事務,支持表級別鎖定,不支持 B-tree、Hash、Full-text 等索引;

1)索引方法 btree  可以用於“ >、 <  、=”查詢 ,如果查id=1000的數據 建立索引后 二分查找最多13次就可以查出相應的數據;

2)hash 不能做order by排序 不能做 用like模糊查詢。

#4 慢查詢優化的基本步驟

  1.  
    0.先運行看看是否真的很慢,注意設置SQL_NO_CACHE
  2.  
    1.where條件單表查,鎖定最小返回記錄表。這句話的意思是把查詢語句的where都應用到表中返回的記錄數最小的表開始查起,單表每個字段分別查詢,看哪個字段的區分度最高
  3.  
    2.explain查看執行計划,是否與1預期一致(從鎖定記錄較少的表開始查詢)
  4.  
    3.order by limit 形式的sql語句讓排序的表優先查
  5.  
    4.了解業務方使用場景
  6.  
    5.加索引時參照建索引的幾大原則
  7.  
    6.觀察結果,不符合預期繼續從0分析

-

 

轉 https://blog.csdn.net/weixin_41827162/article/details/87891221


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM