使用t-sql语句修改表中的某些数据及数据类型。_测试开发工程师数据库篇(一)...
點擊藍字之后,我們就是好朋友了啦
15
???數據庫篇(一)?
01事務概念及應用場景事務是一組不可分割的mysql語句組,這些語句組要么全部執行成功,要么全部執行失敗。事務的提出主要是為了解決并發情況下保持數據一致性的問題。
02事務四大特性原子性:事務是指不可分割的工作單位??
一致性:指在事務開始之前和事務結束以后,數據庫的完整性約束沒有被破壞?
隔離性:多個事務并發訪問時,事務之間是隔離的,一個事務不應該影響其它事務運行效果
持久性:事務一旦提交,它對數據庫中的改變就是永久性的
03數據庫三大范式目前關系數據庫有六種范式:第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、巴斯-科德范式(BCNF)、第四范式(4NF)和第五范式(5NF,又稱完美范式)。? 而通常我們用的最多的就是第一范式(1NF)、第二范式(2NF)、第三范式(3NF)。
第一范式(1NF):要求數據庫表的每一列都是不可分割的原子數據項。
第二范式(2NF):在1NF的基礎上,非碼屬性必須完全依賴于候選碼,需要確保數據庫表中的每一列都和主鍵相關,而不能只與主鍵的某一部分相關。
第三范式(3NF):在2NF基礎上,任何非主屬性不依賴于其它非主屬性,需要確保數據表中的每一列數據都和主鍵直接相關,而不能間接相關。
04數據庫查詢慢的原因1、沒有索引或者沒有用到索引?
2、I/O吞吐量小,形成了瓶頸效應?
3、沒有創建計算列導致查詢不優化
4、內存不足??
5、網絡速度慢??
6、查詢出的數據量過大(可以采用多次查詢,其他的方法降低數據量)? 7、鎖或者死鎖(這也是查詢慢最常見的問題,是程序設計的缺陷)??
8、sp_lock,sp_who,活動的用戶查看,原因是讀寫競爭資源
05悲觀鎖和樂觀鎖悲觀鎖(Pessimistic Lock),每次去拿數據的時候都認為別人會修改,所以每次在拿數據的時候都會上鎖,這樣別人想拿這個數據就會block直到它拿到鎖。傳統的關系型數據庫里邊就用到了很多這種鎖機制,比如行鎖,表鎖等,讀鎖,寫鎖等,都是在做操作之前先上鎖。(實現:在sql語句后面加上for update)?
樂觀鎖(Optimistic Lock),每次去拿數據的時候都認為別人不會修改,所以不會上鎖,但是在更新的時候會判斷一下在此期間別人有沒有去更新這個數據,可以使用版本號等機制。樂觀鎖適用于多讀的應用類型,這樣可以提高吞吐量,像數據庫如果提供類似于write_condition機制的其實都是提供的樂觀鎖。(實現:在表上加version)
△ ?Hard Work Pays Off
06索引優缺點優點:
1、通過創建唯一性索引,可以保證數據庫表中每一行數據的唯一性。??
2、可以大大加快數據的檢索速度,這也是創建索引的最主要的原因。??
3、可以加速表和表之間的連接,特別是在實現數據的參考完整性方面特別有意義。?
缺點:
1、創建索引和維護索引要耗費時間
2、索引需要占物理空間
3、當對表中的數據進行增加、刪除和修改的時候,索引也要動態的維護,這樣就降低了數據的維護速度。
07索引種類1、普通索引:最基礎的索引,沒有任何限制
2、唯一索引:唯一索引是不允許其中任何兩行具有相同索引值的索引?
3、聚簇索引:表中行的物理順序與鍵值的邏輯(索引)順序相同
4、非聚簇索引:數據庫表中記錄的物理順序與索引順序可以不相同
08聚簇索引與非聚簇索引聚簇索引:將數據存儲與索引放到了一塊,找到索引也就找到了數據。
非聚簇索引:將數據存儲于索引分開結構,索引結構的葉子節點指向了數據的對應行,把索引先緩存到內存中,當需要訪問數據時(通過索引訪問數據),在內存中直接搜索索引,然后通過索引找到磁盤相應數據,這也就是為什么索引不在key buffer命中時,速度慢的原因。
09B+樹和hash索引Hash索引底層是哈希表,哈希表是一種以key-value存儲數據的結構,所以多個數據在存儲關系上是完全沒有任何順序關系的,所以,哈希索引只適用于等值查詢的場景。如果有大量重復鍵值的情況下,哈希索引的效率會很低,因為存在哈希碰撞問題。
B+樹是一種多路平衡查詢樹,所以他的節點是天然有序的(左子節點小于父節點、父節點小于右子節點),所以對于范圍查詢的時候不需要做全表掃描 。
10MySQL數據表的切分原則水平切分:將某個訪問極其平凡的表再按照某個字段的某種規則來分散到多個表之中,每個表中包含一部分數據。就是按照數據行的切分,就是將表中的某些行切分到一個數據庫,而另外的某些行又切分到其他的數據庫中。
垂直切分:將不同的表分散到不同的數據庫主機中。
當命運遞給我一個酸的檸檬時,
讓我們設法把它制造成甜的檸檬汁。
——雨果
End
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?總結
以上是生活随笔為你收集整理的使用t-sql语句修改表中的某些数据及数据类型。_测试开发工程师数据库篇(一)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电子网络发票应用系统网络不通_深度强化学
- 下一篇: 安卓 camera 调用流程_[Came