日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

MySQL数据库知识点总结

發布時間:2025/3/12 数据库 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MySQL数据库知识点总结 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

數據庫:

?

?

  • 數據庫索引的好處:索引是對數據庫表中的一個或多個列的值進行排序結構這樣檢索或者查詢某條記錄的時候就不在是順序查找,而是使用特定的查找方式進行查找,如通過二分查找或者是hash值來查找,提高查詢效率。
  • Mysql如何查看執行計劃:可以通過explain命令來幫助我們分析sql語句的執行情況來了解sql如何使用索引,連接查詢的執行順序,查詢的數據行數。只需要在查詢select關鍵字之前增加explain這個詞即可。
  • possible_keys指出mysql能使用哪些索引來優化查詢,查詢上所涉及的索引都會被列出,但不一定會使用;
  • Key查詢優化器查詢實際使用的索引,如果沒有,顯示null
  • Table 輸出數據行所在的表名
  • Id是一位數字,表示執行select語句的順序,id相同執行順序從上到下,越大先執行。
  • Select_type顯示對應行是簡單還是復雜。不包含子查詢或者union(simple)包含子查詢:primary
  • Mysql執行計劃的順序:id相同從上往下執行,id不同,大的先執行。
  • ?

  • 如何查看mysql中sql執行的快慢:通過profiling命令來查看sql的執行時間。
  • 首先先檢查profiling的狀態(select @@profiling 0代表關閉著分析功能,把他設置為1 set profiling=1,再次查看select @@profiling,這個時候已經是1了)
  • 查看sql語句的執行時間(show profiles);
  • 查看sql執行耗時的詳細信息。Show profile query queryID;
  • ?

  • 使用什么數據庫連接池?連接池的工作原理?常用連接池C3PO,proxool與dbcp的區別??https://blog.csdn.net/shuaihj/article/details/14223015
  • ? ? ? ? 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数据库知识点总结的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。