[SQL 基本觀念] primary Key / Index / Unique 差別

PRIMARY Key(PK) (主鍵)

  1. 是一種 index 但不能為空值(NULL),PK 會自動建立 index
  2. 每個 table 只能有一個 PRIMARY Key
  3. 語法為 CREATETABLE tablename ( […], PRIMARY KEY (列的列表) );
  4. 在 Rails 裡面,默認 id 為 primary key


Index (索引鍵)

  1. 資料索引,可加快搜尋速度,Mysql 引擎除了 Archive 外都支援 B-tree 索引
  2. 可多欄位設定為 Index
  3. 語法為 CREATE INDEX <索引的名字> ON tablename (列的列表)


Unique (不重複鍵)

  1. 和 index 相同,差異在於不能允許重複值
  2. 語法為 CREATE UNIQUE INDEX <索引的名字> ON tablename (列的列表)


Index 的觀念

  1. index建立會占用儲存空間,資料增刪修時會異動
  2. index 欄位長度是越短越好
  3. index 欄位長度若是固定比變動好
  4. 使用「LIKE」參數時,若將萬用字元(%)置於關鍵詞後方,可以使用到 index,前方不起作用
  5. 單列索引與多列索引的觀念:
  6. 將「A+B+C」設為 index 時,僅搜尋A是不會用到索引的
  7. 「A+B+C」和「A」設為 index不同,如搜尋A+B+C,前者直接回覆A+B+C索引值,後者為A用索引,縮小範圍後再以搜尋B+C

來源:[喜歡在地上滾的工程師]-[SQL 基本觀念]

留言

這個網誌中的熱門文章

Discord WebHook處理流程(Guess??)