MySQL 第十三章索引和約束

2021-10-03 20:54:06 字數 1772 閱讀 5982

當想表中插入一行時,伺服器只是簡單的將資料插入表中的乙個可存放資料的位置(伺服器為每個表預留一系列的空間),

1.當進行查詢時,尋藥檢查每一行來完成查詢,這種方式叫做表掃瞄

1.一種特定順序儲存的專用表,不包含具體順序,

2.用於定位表中的行和列,剛方便查詢表中的行,列子集

可以加速查詢,更新,刪除指定某一名稱的全部或部分

mysql 必須使用alter table命令新增或刪除索引

1.當單個索引有利於查詢,優化器選擇使用索引,否則直接表掃瞄

2.當有多個索引時,優化器需要判斷那個索引更加有利於查詢

13.1.1.1 唯一索引

13.1.1.2 多列索引

13.1.2.1 b樹索引(預設型別)

根結點:起點

分枝節點:用於遍歷樹

葉節點:用於儲存真正的值和位置資訊

13.1.2.2 位圖索引(oracle)

生成位圖

13.1.2.3 文字索引explain請求伺服器顯示查詢的執行計畫,而不執行

所以,儘量減少索引的建立;在特殊需求時可以先建立在刪除

1.主鍵約束:一列或多列,保證其值在表中的唯一性

2.外來鍵約束:限制一列或多列值,必須包含在另一表的外來鍵列中,級聯更新或級聯刪除規則建立後也可限制其他表的可用值

3.唯一約束:限制一列或多列值,保證其值在表中的唯一性(主鍵約束是特殊的唯一約束)

4.檢查約束:限制一列的可用值範圍

刪除或者新增外來鍵時,包含 on update casade語句,使用這種外來鍵約束實現傳播

當主表中的一行被刪除,級聯刪除會閃促子表中的行,使用on delete casade語句

第十三章 併發

13.1 動機 13.2 基本執行緒 如果必須要控制現成的執行順序,最好是根本不用執行緒,而是自己編寫特定順序彼此控制的協作子程式。繼承thread類或者實現runnable介面。內部類實現。13.3 共享受限資源 1 如果要對類中的某個方法進行同步控制,最好同步所有方法。如果忽略了其中乙個,通常很...

第十三章 類

1.類簡單地說是乙個性的資料型別。類當中有資料成員,和成員函式。類的基本思想就是體現出資料的抽象和封裝。2.這裡只需要說明乙個問題即可 就是類成員函式的const型別 class screen public const int get const int i const int j const 這裡...

第十三章 事件

1 事件的作用 事件是對委託的封裝,如同屬性對字段的封裝。封裝後可以在委託上實現更複雜的邏輯。1.1 封裝訂閱 委託允許使用 對其進行賦值,但向乙個委託例項賦值多個委託時,使用 會造成覆蓋之前的委託。事件只支援 或 對事件進行賦值 1.2 封裝發布 委託可以在其他類進行訪問,而事件可以確保只有包容類...