廖雪峰資料庫教學資料讀書筆記.
不能重複, 不可以和業務邏輯有關, 不可以修改(盡量),所以身份證等 雖然是唯一標識id但是 不可以作為主鍵, 因為其和業務邏輯有關, 並且身份證公升位的話 也很麻煩.
一般情況下我們將id作為主鍵的欄位名,並且將其設定為自增型別. 這樣就不需要擔心主鍵重複,也不需要自己手動生成主鍵.
有個東西 全域性唯一guid型別:使用一種全域性唯一的字串作為主鍵,類似8f55d96b-8acc-4636-8cb8-76bf8abc2f57. guid演算法通過網絡卡的mac位址(唯一),時間戳和隨機數保證任意計算機上生成的字串都是不同的,大部分程式語言都內建了guid演算法,可以自己預算出 主鍵.
我們可以使用定位外來鍵約束的方式去定義外來鍵, 其中的外來鍵約束名稱fk_class_id可以任意,foreign key (class_id)指定了這個外來鍵將關聯到classes表的id列(即classes表的主鍵), 通過定義外來鍵約束,關係型資料庫可以保證無法插入無效資料,例如乙個學生的班級定義為999這個不存在的班級.
alter table students
add constraint fk_class_id
foreign key (class_id)
references classes (id);
但是如果設定外來鍵約束會導致降低資料庫的效能,大部分網際網路應用程式為了求追效能,並不設定外來鍵約束,而是僅靠應用程式來保證自身邏輯的正確性,這種情況下class_id僅僅是乙個普通的列,只是它起到了外來鍵的作用而已.
可以將乙個大表拆分為兩個一對一的小表,將經常用到的字段和用不到的字段分開,以提高效率.
在關係型資料庫中如果有上萬甚至上億條資料,在查詢記錄的時候,想要獲取非常快的速度就需要使用索引.
索引是關聯式資料庫中對某一列或者多個列的值進行預排序的資料結構.通過使用索引,可以讓資料庫系統不必掃瞄整個表,而是直接定位到符合條件的記錄這樣就大大加快了查詢速度.
索引實質上就是對索引列進行雜湊操作, 因此在選擇索引列的時候要注意雜湊的程度越高查詢的速度越快, 因為雜湊的特性如果選擇的列雜湊效果不好的話(例如將性別作為雜湊列),這樣會導致效能下降還不如不去設定雜湊. 所以一般情況下雜湊都是對於 唯一表示列並且作為查詢條件的列 進行雜湊.
資料庫優化 資料庫設計優化
一 索引優化 1.首先索引不是越多越好,要視情況而定。因為索引會降低insert和update的效率 insert和update有時可能會重建索引。2.乙個表的索參數量最好不要超過6個,擇優而建。3.專案上線後,根據使用者的查詢條件字段稍微調整資料庫中的字段索引。二 分表 1.縱切 根據表字段來且分...
資料庫引擎優化顧問優化資料庫
現在一直在做的專案,資料量相對也不小,開始的時候沒有覺得,因為是剛開始,資料量還很小,在程式使用過程中速度還挺快,但是隨著資料量的不停的增長,發現程式越來越慢,甚至出現了超時的問題,因此要對程式和資料庫進行優化,前期專案比較緊,沒有針對大資料量業務進行分析設計,所以索引等相關優化沒有做到位,通過後期...
資料庫優化
資料庫優化 1 合理使用索引 索引是資料庫中重要的資料結構,它的根本目的就是提高查詢效率。索引的使用要恰到好處,其使用原則如下 在經常進行連線,但是沒有指定為外來鍵的列上建立索引,而不經常連線的字段則由優化器自動生成索引 在頻繁進行排序或分組 即進行groupby或orderby操作 的列上建立索引...