MySQL数据库知识点总结
數據庫:
?
?
?
?
? ? ? ? DBCP,C3P0區別:
? ? ? ? ? ?https://blog.csdn.net/baidu_37107022/article/details/77416852
早期數據庫操作:
? ①裝載數據庫驅動程序;
? ②通過jdbc建立數據庫連接;
? ③訪問數據庫,執行sql語句;
? ④斷開數據庫連接。
為了解決資源的頻繁分配﹑釋放所造成的問題,可以采用數據庫連接池技術。
數據庫連接池的基本思想就是為數據庫連接建立一個“緩沖池”。預先在緩沖池中放入一定數量的連接,當需要建立數據庫連接時,只需從“緩沖池”中取出一個,使用完畢之后再放回去。我們可以通過設定連接池最大連接數來防止系統無盡的與數據庫連接。更為重要的是我們可以通過連接池的管理機制監視數據庫的連接的數量﹑使用情況,為系統開發﹑測試及性能調整提供依據。
?
? ? ? ?①???編寫class?實現DataSource?接口
? ? ? ?②???在class構造器一次性創建10個連接,將連接保存LinkedList中
? ? ? ?③???實現getConnection??從?LinkedList中返回一個連接
? ? ? ?④???提供將連接放回連接池中方法
?
JNDI;java naming directory interface(java命名目錄接口),將程序與數據庫連接的建立的參數解耦開來。
區別:
1. DBCP沒有自動去回收空閑連接池的功能,C3P0有自動回收空閑連接的功能。
2. Dbcp有著比c3p0更高的效率,但是在實際應用中,有出現丟失連接的可能,c3p0的穩定性比較高,它是一個開源的JDBC連接池,實現數據源和JNDI的綁定,目前使用它的開源項目有hibernate和spring。
?
| (關系型數據庫)事務的四大特性(ACID) |
| 原子性(Atomicity)(寫的時候要求原子性,讀的時候要求一致性) 原子性是指事務是一個不可分割的工作單位,事務中的操作要么全部成功,要么全部失敗。比如在同一個事務中的SQL語句,要么全部執行成功,要么全部執行失敗 一致性(Consistency) 官網上事務一致性的概念是:事務必須使數據庫從一個一致性狀態變換到另外一個一致性狀態。以轉賬為例子,A向B轉賬,假設轉賬之前這兩個用戶的錢加起來總共是2000,那么A向B轉賬之后,不管這兩個賬戶怎么轉,A用戶的錢和B用戶的錢加起來的總額還是2000,這個就是事務的一致性。 隔離性(Isolation) 事務的隔離性是多個用戶并發訪問數據庫時,數據庫為每一個用戶開啟的事務,不能被其他事務的操作數據所干擾,多個并發事務之間要相互隔離。 持久性(Durability) |
?
隔離級別:
四種隔離級別分別從低到高為:
Read uncommitted:讀未提交:什么都不能保證
Read committed:讀已提交:可避免臟讀
Repeatable read:可重復讀:可避免臟讀和不可重復讀
serializable:串行化:可避免臟讀和不可重復讀和幻讀
?
事務不考慮隔離性可能會引發的問題:
如果事務不考慮隔離性,可能會引發如下問題:
臟讀:一個事務讀取了另一個事務還沒提交的數據;
不可重復讀:一個事務多次讀取了表中的同一條數據,讀取結果不一樣;
虛讀(幻讀):一個事務讀取了另一個事務插入的數據,導致前后讀取結果不一樣。
?
?
?
簡單的說:哈希索引就是采用一定的哈希算法,將鍵值換算成新的哈希值,檢索的時候就不用跟B+樹一樣,從跟節點到葉子節點逐級查找,只需要一次哈希算法就能定位到對應的數據,速度非常快。
B+樹適合大多數場景,例如:范圍查詢,排序,分組
哈希索引適合主要以等值查詢為主,沒有范圍查詢,沒有排序的時候。
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的MySQL数据库知识点总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: git学习入门~~~
- 下一篇: Effective Java(一)———