MySQL中的索引、左連接、右連接、join、sql執行順序


邏輯架構:

  1、連接層

  2、服務層

  3、引擎層(插拔式)

  4、存儲層

存儲引擎:

  常用的有:MyISAM、InnoDB

  查看命令:show variables like '%storage_engine%';

索引:【單值、復合】

 創建索引:create index idx_user_name(索引名字) on user(表名) (name)(字段名)

 刪除索引:drop index  idx_user_name(索引名字)on user(表名) 

CREATE INDEX idx_article_ccv ON article(category_id,comments,views);

DROP INDEX idx_article_ccv ON article;

 

 

 

  定義:索引是一種數據結構(幫助MySQL高效的獲取數據)

  目的:提高查詢效率,可以類比字典【可以理解為排好序的快速查找數據結構】

 優勢:提高數據檢索效率,降低數據庫的iO成本;

 劣勢:實際上索引也是一種表,它保存的索引字段,是需要占空間的;會降低更新表速度,因為更新表時,MySQL不僅要保存數據還要保存索引文件每次更新添加了索引的字段

 

  分類:

    

    

 原理:二分查找,類似猜數字游戲【結構:B-TREE(Java主要)、hash、R-TREE】

 什么時候該建索引:

  如:where后面需要被查詢的字段

什么時候不該建索引:

  1、表記錄太少

  2、經常增刪改的表或字段

  3、數據重復切分布平均的字段【如果某個數據列包含許多重復的內容,為它建立索引就沒有很么實際的效果】

常見的join查詢:

  一、SQL執行順序

    1 FROM <left_table>

    2 ON <join_condition>

    3 <join_type>JOIN<right_table>

    4 WHERE <where_condition>

    5 GROUP BY <group_by_list>

    6 HAVING <having_condition>

    7 SELECT

    8 DISTINCT<select_list>

    9 ORDER BY <order_by_condition>

    10 LIMIT <limit_number>

 

 

  二、7種join圖

 

 


免責聲明!

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



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