1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          mysql面試題(分享幾個常見的MySQL面試題)

          來源:互聯網轉載 時間:2024-05-10 20:23:59

          1.什么是關系型數據庫?談談你對 MySQL 的認識。

          這是一道基礎題,考察面試者對數據庫的了解程度,一般可以簡單講下自己的認知,有條理即可。比如:

          關系型數據庫是指采用了關系模型來組織數據的數據庫,其以行和列的形式存儲數據。關系型數據庫最大的特點是支持事務。常見的關系型數據庫有 MySQL、Oracle、SQLServer 等。MySQL 是當下最流行的開源數據庫。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,使得很多公司都采用 MySQL 數據庫以降低成本,目前被廣泛地應用在 Internet 上的中小型網站中,尤其適用于 OLTP 領域。

          2.MySQL 常見的存儲引擎有哪些,有什么區別?

          這個問題也經常被問到,和『InnoDB 與 MyISAM 引擎的區別』問題相似。

          常見的幾種存儲引擎:

          • InnoDB: MySQL 默認的存儲引擎,支持事務、MVCC、外鍵、行級鎖和自增列。

          • MyISAM: 支持全文索引、壓縮、空間函數、表級鎖,不支持事務,插入速度快。

          • Memory: 數據都在內存中,數據的處理速度快,但是安全性不高。

          • ARCHIVE: 常用于歷史歸檔表,占用空間小,數據不能更新刪除。

          InnoDB 與 MyISAM 引擎的幾點區別:

          • InnoDB 支持事務,MyISAM 不支持事務。

          • InnoDB 支持外鍵,而 MyISAM 不支持。

          • InnoDB 不支持全文索引,而 MyISAM 支持。

          • InnoDB 是聚簇索引,MyISAM 是非聚簇索引。

          • InnoDB 不保存表的具體行數,而 MyISAM 用一個變量保存了整個表的行數。

          • InnoDB 最小的鎖粒度是行鎖,MyISAM 最小的鎖粒度是表鎖。

          • 存儲結構不同,MyISAM 表分為 frm MYD MYI 三個,InnoDB 一般分為 frm ibd 兩個。

          3.描述下 MySQL 基礎架構。

          這個問題考察面試者對 MySQL 架構的了解,和『一條 select 語句執行流程』問題相似。

          MySQL的邏輯架構主要分為3層:

          • 第一層:對客戶端的連接處理、安全認證、授權等,每個客戶端連接都會在服務端擁有一個線程,每個連接發起的查詢都會在對應的單獨線程中執行。

          • 第二層:MySQL的核心服務功能層,包括查詢解析、分析、查詢緩存、內置函數、存儲過程、觸發器、視圖等,select操作會先檢查是否命中查詢緩存,命中則直接返回緩存數據,否則解析查詢并創建對應的解析樹。

          • 第三層:存儲引擎,負責數據的存儲和提取,MySQL服務器通過API與存儲引擎通信,屏蔽了各種引擎之間的差異,常見的存儲引擎有:InnoDB、MyISAM。

          一條 select 語句執行流程:

          • 客戶端通過連接器與 MySQL 服務器建立連接,并獲取了用戶的讀寫權限,然后提交查詢語句。

          • 首先 MySQL 會在查詢緩存中對提交的語句進行查詢,如果命中且用戶對表有操作權限,會直接返回查詢緩存中查詢結果作為本次查詢的結果,查詢到此結束。

          • 如果查詢緩存未命中,會來到分析器,分析器會解析語句并檢查其合法性。如果語句不符合 MySQL 的語法規范,執行器會報錯,查詢到此結束。

          • 若語句合法,會來到優化器,優化器會為 SQL 語句選擇最優的執行計劃。

          • 最后來到執行器,如果用戶對表有操作權限,執行器會調用存儲引擎提供的接口來執行 SQL 語句,然后將查詢結果返回給客戶端,查詢到此結束。

          4.說說常用的幾種字段類型。

          這個問題考察面試者對 MySQL 字段類型的了解程度,可以延伸出很多小問題,例如 char 與 varchar 的區別。

          常用的字段類型分類:

          數值型:

          字符串類型:

          日期和時間類型:

          int(M)中的 M 代表最大顯示寬度,"最大顯示寬度"我們第一反應是該字段的值最大能允許存放的值的寬度,以為我們建了int(1),就不能存放數據10了, 其實不是這個意思,int(5)和int(10)可存儲的范圍一樣。

          char類型是定長的,MySQL總是根據定義的字符串長度分配足夠的空間。當保存char值時,在它們的右邊填充空格以達到指定的長度,當檢索到char值時,尾部的空格被刪除掉。VARCHAR類型用于存儲可變長字符串,存儲時,如果字符沒有達到定義的位數,也不會在后面補空格。char(M) 與 varchar(M)中的的 M 都表示保存的最大字符數,單個字母、數字、中文等都是占用一個字符。

          5.講講索引的作用及結構及使用規范。

          關于索引,能有好多好多問題,可能幾篇文章也寫不明白。簡單分享下這類問題的回答:

          索引的目的在于提高查詢效率??梢灶惐茸值渲械哪夸?查找字典內容時可以根據目錄查找到數據的存放位置,然后直接獲取即可。索引是表的目錄,在查找內容之前可以先在目錄中查找索引位置,以此快速定位查詢數據。

          InnoDB 引擎下,主要使用的是 B+Tree 索引,每個索引其實都是一顆B+樹,B+樹是為了磁盤及其他存儲輔助設備而設計的一種平衡查找樹(不是二叉樹),在B+樹中,所有的數據都在葉子節點,且每一個葉子節點都帶有指向下一個節點的指針,形成了一個有序的鏈表。

          從物理存儲角度來看,InnoDB 索引可分為聚簇索引(clustered index)和二級索引(secondary index)或輔助索引。聚簇索引的葉子節點存的是整行數據,當某條查詢使用的是聚簇索引時,只需要掃描聚簇索引一顆B+樹即可得到所需記錄,如果想通過二級索引來查找完整的記錄的話,需要通過回表操作,也就是在通過二級索引找到主鍵值之后再到聚簇索引中查找完整的記錄。

          索引的優點顯而易見是可以加速查詢,但創建索引也是有代價的。首先每建立一個索引都要為它建立一棵B+樹,會占用額外的存儲空間;其次當對表中的數據進行增加、刪除、修改時,索引也需要動態的維護,降低了數據的維護速度。所以,索引的創建及使用時有原則的,一般只為用于搜索、排序、分組、連接的列創建索引,選擇性差的列盡量不創建索引。

          6.講下 MySQL 事務的特性及隔離級別。

          MySQL 事務相關問題也經常被問到,一些原理性的東西還是需要深入去學習的。

          ACID 四個特性:

          • A(Atomicity,原子性):一個事務中的操作要么都成功,要么都失敗。

          • C(Consistency,一致性):數據庫總是從一個一致性狀態轉換到另一個一致性狀態,若破壞約束,則不滿足一致性條件。

          • I(Isolation,隔離性):一個事務的執行不能其它事務干擾。即一個事務內部的操作及使用的數據對其它并發事務是隔離的,并發執行的各個事務之間不能互相干擾。

          • D(Durability,持久性):事務在提交以后,它所做的修改就會被永久保存到數據庫。

          事務隔離級別:

          • 讀未提交(Read Uncommitted):事務中的修改,即便沒有提交,對其他事務也都是可見的。

          • 讀已提交(Read Committed):事務中的修改只有在提交之后,才會對其他事務可見。

          • 可重復讀(Repeatable Read):一個事務中多次查詢相同的記錄,結果總是一致的(默認的隔離級別)。

          • 可串行化(Serializable):事務都是串行執行的,讀會加讀鎖,寫會加寫鎖。

          并發事務帶來的問題:

          • 臟讀(Dirty Reads):事務A讀取了事務B未提交的數據,然后B回滾操作,那么A讀取到的數據是臟數據。

          • 不可重復讀(Non-Repeatable Reads):事務 A 多次讀取同一數據,事務B在事務A多次讀取的過程中,對數據作了更新并提交,導致事務A多次讀取同一數據時,結果不一致。

          • 幻讀(Phantom Reads):幻讀與不可重復讀類似。它發生在一個事務A讀取了幾行數據,接著另一個并發事務B插入了一些數據時。在隨后的查詢中,事務A就會發現多了一些原本不存在的記錄,就好像發生了幻覺一樣,所以稱為幻讀。

          看完上述內容,你們對分享幾個常見的MySQL面試題有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注本站行業資訊頻道,感謝大家的支持。

          標簽:mysql面試題-

          c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...

          2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...

          :喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...

          (資料圖)你們好,最近小活發現有諸多的小伙伴們對于王者榮耀健康系統時間限制規則,王者榮耀健康系統這個問題都頗為感興趣的,今天小活為大家梳理了下,一起往下看看吧。1、首先進入微信,點擊中間的【微信官方賬號】,如下圖所示。2、然后點擊【成長守護平臺】,如下圖所示。3、1微信如何關注微信官方賬號?4、然后點擊右下角的幫助,如下圖所示。5、再次點擊實名認證查詢,如下圖所示。6、點擊頂部的【修改實名認證】,...

          民生銀行客服電話是多少?民生銀行客服電話:95568(1)民生銀行客服電話是面向個人和企業客戶,是集查詢、轉帳、結算于一體的自助業務系統。該系統為個人客戶提供帳戶信息查詢、轉帳、匯款等多樣化金融服務;民生個人卡、單位卡、活期一本通客戶和企業客戶無須到銀行辦理開通手續,就可以隨時隨地通過撥打我行電話銀行服務號碼,獲得已經開通的并將不斷拓展的金融服務。(2)收費標準同撥打市話的收費標準,不收取長途通話...

          郵政銀行信用卡怎么申請?【1】官網申請在百度瀏覽器中搜索并直接進入中國郵政儲蓄銀行官網,選擇“信用卡”欄目,跳轉頁面后選擇“我要辦卡”,再根據自身的喜好選擇要辦理的信用卡種類,根據頁面提示填寫申請信息,最后提交申請即可?!?】公眾號申請登錄微信,在搜索框查找“中國郵政儲蓄銀行”并關注,點擊“郵金融”,在...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>