1. 程式人生 > >聚集索引和取消外鍵,外鍵影響在大並發下的性能.刪除外鍵

聚集索引和取消外鍵,外鍵影響在大並發下的性能.刪除外鍵

數據一致性 操作 服務 軟件 程序 索引 等於 性能 聚集

聚集索引是指數據庫表行中數據的物理順序與鍵值的邏輯(索引)順序相同。一個表只能有一個聚集索引,因為一個表的物理順序只有一種情況,所以,對應的聚集索引只能有一個。
如果某索引不是聚集索引,則表中的行物理順序與索引順序不匹配,與非聚集索引相同,聚集索引有著更快的檢索速度。

不相關的拆離.查詢不一定關聯的列單獨分出一張表.
做對應關聯.

外鍵.
外鍵約束去掉,鎖很多,占用資源.多表關聯較多.

列有空值,空值不走索引.

外鍵是否采用看業務應用場景,以及開發成本的,大致列下什麽時候適合,什麽時候不適合使用:
1. 互聯網行業應用不推薦使用外鍵: 用戶量大,並發度高,為此數據庫服務器很容易成為性能瓶頸,尤其受IO能力限制,且不能輕易地水平擴展;若是把數據一致性的控制放到事務中,也即讓應用服務器承擔此部分的壓力,而引用服務器一般都是可以做到輕松地水平的伸縮;
2.傳統行業 1>.軟件應用的人數有限,換句話說是可控的; 2>.數據庫服務器的數據量也一般不會超大,且活躍數據有限; 綜合上述2句話描述,也即數據庫服務器的性能不是問題,所以不用過多考慮性能的問題;另外,使用外鍵可以降低開發成本,借助數據庫產品自身的觸發器可以實現表與關聯表之間的數據一致性和更新;最後一點,使用外鍵的方式,還可以做到開發人員和數據庫設計人員的分工,可以為程序員承擔更多的工作量; 為何說外鍵有性能問題: 1.數據庫需要維護外鍵的內部管理; 2.外鍵等於把數據的一致性事務實現,全部交給數據庫服務器完成; 3.有了外鍵,當做一些涉及外鍵字段的增,刪,更新操作之後,需要觸發相關操作去檢查,而不得不消耗資源;
4.外鍵還會因為需要請求對其他表內部加鎖而容易出現死鎖情況; 外鍵之類的約束還有一個作用是防新人啊 有些新人是能直接在數據庫裏insert和delete,而且總是插些不規範的數據進去 什麽業務架構都防不住

聚集索引和取消外鍵,外鍵影響在大並發下的性能.刪除外鍵