1. <ul id="0c1fb"></ul>

      <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
      <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区

      RELATEED CONSULTING
      相關(guān)咨詢
      選擇下列產(chǎn)品馬上在線溝通
      服務(wù)時間:8:30-17:00
      你可能遇到了下面的問題
      關(guān)閉右側(cè)工具欄

      新聞中心

      這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
      【揭秘】數(shù)據(jù)庫面試葵花寶典,讓你面試一次過

      大家可以叫我老張,網(wǎng)名superZS!一直從事數(shù)據(jù)庫行業(yè)10余年,工作于某數(shù)據(jù)庫服務(wù)公司,兼數(shù)據(jù)庫資深講師,就面試中大家遇到的比較困惑的數(shù)據(jù)庫問題,和剛進入數(shù)據(jù)庫領(lǐng)域的同學(xué)們,我在這里給大家做一個詳細的總結(jié),希望對大家在工作或者面試中有所幫助,老師會傾囊相授,道行尚淺,大家相互學(xué)習(xí)!讓我們努力學(xué)習(xí)技術(shù),為了拿到高薪,追到心儀的姑娘,而奮斗吧!

      源匯網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)建站于2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站


      葵花寶典

      Question 1:

      你目前接觸的MySQL版本是什么?除了官方版本,還接觸過其他的mysql分支版本嘛?

      產(chǎn)生分支的原因

      許多開發(fā)人員認為有必要將其拆分成其他項目,并且每個分支項目都有自己的專長。該需求以及Oracle對核心產(chǎn)品增長緩慢的擔(dān)憂,導(dǎo)致出現(xiàn)了許多開發(fā)人員感興趣的子項目和分支

      三個流行MySQL分支:Drizzle、MariaDB和Percona Server(包括XtraDB引擎)

      MariaDB不僅是mysql的替代品,主要還是創(chuàng)新和提高mysql自有技術(shù)。

         新功能介紹

      1. multi-source replication 多源復(fù)制

      2. 表的并行復(fù)制

      3. galera cluster集群

      4. spider水平分片

      5. tokuDB存儲引擎

      XtraDB是innodb存儲引擎的增強版,可用來更好地發(fā)揮最新的計算機硬件系統(tǒng)性能,還包含在高性能模式下的新特性。它可以向下兼容,因為它是在innodb基礎(chǔ)上構(gòu)建,所以他有更多的指標(biāo)和擴展功能。而且它在cpu多核的條件下,可以更好地使用內(nèi)存,時數(shù)據(jù)庫性能提到更高!

      Drizzle與mysql的差別就比較大了,并且不能兼容,如果想運行此環(huán)境,就需要重寫一些代碼了!


      Question 2:

      mysql主要的存儲引擎myisam和innodb的不同之處?

      1. 事務(wù)的支持不同(innodb支持事務(wù),myisam不支持事務(wù))

      2. 鎖粒度(innodb行鎖應(yīng)用,myisam表鎖)

      3. 存儲空間(innodb既緩存索引文件又緩存數(shù)據(jù)文件,myisam只能緩存索引文件)

      4. 存儲結(jié)構(gòu)

        (myisam:數(shù)據(jù)文件的擴展名為.MYD myData ,索引文件的擴展名是.MYI myIndex)

            (innodb:所有的表都保存在同一個數(shù)據(jù)文件里面 即為.Ibd)

         5. 統(tǒng)計記錄行數(shù)

             (myisam:保存有表的總行數(shù),select count(*) from table;會直接取出出該值)

             (innodb:沒有保存表的總行數(shù),select count(*) from table;就會遍歷整個表,消耗相當(dāng)大)


      Question  3:

      Innodb的體系結(jié)構(gòu)簡單介紹一下?

      談及到innodb的體系結(jié)構(gòu),首先要考慮mysql的體系結(jié)構(gòu),分為兩部分mysql的server層和存儲引擎層

      先要跟面試官聊清楚mysql的整體方向,然后再去涉及innodb體系結(jié)構(gòu)

      建議從三方面介紹innodb體系結(jié)構(gòu):內(nèi)存----線程-----磁盤

      內(nèi)存中包含insert_buffer,data_buffer,index_buffer,redo_log_buffer,double_write

      內(nèi)存刷新到磁盤的機制,redo,臟頁,binlog的刷新條件

      各種線程的作用,master_thread,purge_thread,redo log thread,read thread,write thread,page cleaner thread

      磁盤中存放著數(shù)據(jù)文件,redo log,undo log,binlog


      Question  4:

      mysql有哪些索引類型:

      1. 數(shù)據(jù)結(jié)構(gòu)角度上可以分:B+tree索引,hash索引,fulltext索引(innodb,myisam都支持)

      2. 存儲角度上可以分:聚集索引,非聚集索引

      3. 邏輯角度上可以分:primary key,normal key,單列,復(fù)合,覆蓋索引


      Question  5:

      mysql binlog有幾種格式:

      1. statement

          優(yōu)點:不需要記錄每一行的變化,減少了binlog日志量,節(jié)約了IO,提高性能

          缺點:當(dāng)使用一些特殊函數(shù)的時候,或者跨庫操作的時候容易丟失數(shù)據(jù)

      注:在生產(chǎn)中不建議使用

      2. row

          優(yōu)點:清晰記錄每行的數(shù)據(jù)信息,不會出現(xiàn)跨庫丟數(shù)據(jù)的情況

          缺點:內(nèi)容當(dāng)記錄到日志中的時候,都將以每行記錄的修改來記錄,但就會產(chǎn)生大量的binlog,對于網(wǎng)絡(luò)開銷也比較大

      注:生產(chǎn)中推薦使用

      3. mixed

          是mysql5.1的時候,一個過渡版本,DDL語句會記錄成statement,DML會記錄row。

      注:生產(chǎn)中不建議使用


      Qusetion 6:

      mysql主從復(fù)制的具體原理是什么?

      服務(wù)器把數(shù)據(jù)更新記錄到二進制日志中,從服務(wù)器通過io thread向主庫發(fā)起binlog請求,主服務(wù)器通過IO dump thread把二進制日志傳遞給從庫,從庫通過io thread記錄到自己的中繼日志中。然后再通過sql thread應(yīng)用中繼日志中sql的內(nèi)容。


      Qusetion 7:

      數(shù)據(jù)庫中雙一是什么?

      sync_binlog=1

      innodb_flush_log_at_trx_commit=1

      innodb_flush_log_at_trx_commit和sync_binlog 兩個參數(shù)是控制MySQL 磁盤寫入策略以及數(shù)據(jù)安全性的關(guān)鍵參數(shù)

      innodb_flush_log_at_trx_commit設(shè)置為1,每次事務(wù)提交時MySQL都會把log buffer的數(shù)據(jù)寫入log file,并且刷到磁盤中去。

      sync_binlog =N (N>0) ,MySQL 在每寫 N次 二進制日志binary log時,會使用fdatasync()函數(shù)將它的寫二進制日志binary log同步到磁盤中去


      Qusetion 8:

      如何監(jiān)控mysql  replication復(fù)制延遲?

      1. 可以通過第三方工具 業(yè)界中的瑞士×××percona-toolkit中的命令,pt-heartbeat進行主從延遲監(jiān)控。

      2. 傳統(tǒng)方法,通過比較主從服務(wù)器之間的position號的差異值。

      3. 還可以通過查看seconds_behind_master估算一下主從延遲時間


      Qusetion  9:

      大表DDL語句,如何實施,才能把性能影響降到最低?

      1. 可以通過傳統(tǒng)方法導(dǎo)入導(dǎo)出數(shù)據(jù),新建一張與原表一樣的表結(jié)構(gòu),把需要執(zhí)行的ddl語句在無數(shù)據(jù)的新表執(zhí)行,然后把老表中的數(shù)據(jù)導(dǎo)入到新表中,把新表改成老表的名字

      2. 通過第三方工具 業(yè)界中的瑞士×××percona-toolkit中的命令,pt-online-schema-change進行在線操作

      3. 對于新版本的mysql(5.7)可以直接在線online ddl


      Qusetion  10:

      為什么要為innodb表設(shè)置自增列做主鍵?

      1.使用自增列做主鍵,寫入順序是自增的,和B+數(shù)葉子節(jié)點分裂順序一致

      2.表不指定自增列做主鍵,同時也沒有可以被選為主鍵的唯一索引,InnoDB就會選擇內(nèi)置的rowid作為主鍵,寫入順序和rowid增長順序一致

      所以InnoDB表的數(shù)據(jù)寫入順序能和B+樹索引的葉子節(jié)點順序一致的話,這時候存取效率是最高


      Qusetion  11:

      如何優(yōu)化一條有問題的sql語句?

      針對sql語句的優(yōu)化,我們不要上來就回答添加索引,這樣顯得太不專業(yè)。我們可以從如下幾個角度去分析

      1. 回歸到表的設(shè)計層面,數(shù)據(jù)類型選擇是否合理

      2. 大表碎片的整理是否完善

      3. 表的統(tǒng)計信息,是不是準(zhǔn)確的

      4. 審查表的執(zhí)行計劃,判斷字段上面有沒有合適的索引

      5. 針對索引的選擇性,建立合適的索引(就又涉及到大表DDL的操作問題)


      Qusetion  12:

      服務(wù)器負載過高或者網(wǎng)頁打開緩慢,簡單說說你的優(yōu)化思路 ?

      1. 首先我們要發(fā)現(xiàn)問題的過程,通過操作系統(tǒng),數(shù)據(jù)庫,程序設(shè)計,硬件角度四個維度找到問題所在

      2. 找到瓶頸點的位置

      3. 制定好優(yōu)化方案,形成處理問題的體系

      4. 體系制定好之后,在測試環(huán)境進行優(yōu)化方案的測試

      5. 測試環(huán)境如果優(yōu)化效果很好,再實施到生產(chǎn)環(huán)境

      6. 做好處理問題的記錄


      Qusetion  13:

      接觸過哪些mysql的主流架構(gòu)?架構(gòu)應(yīng)用中有哪些問題需要考慮?

      1. M-S

      2. MHA

      3. MM keepalived

      4. PXC

      共同存在的問題:主從延遲問題的存在,在主庫宕機,切換過程中要考慮數(shù)據(jù)一致性的問題,避免出現(xiàn)主從復(fù)制不一致


      Qusetion14:

      什么是死鎖?鎖等待?如何優(yōu)化這類問題?通過數(shù)據(jù)庫哪些表可以監(jiān)控?

      死鎖是指兩個或多個事務(wù)在同一資源上互相占用,并請求加鎖時,而導(dǎo)致的惡性循環(huán)現(xiàn)象。當(dāng)多個事務(wù)以不同順序試圖加鎖同一資源時,就會產(chǎn)生死鎖。

      鎖等待:mysql數(shù)據(jù)庫中,不同session在更新同行數(shù)據(jù)中,會出現(xiàn)鎖等待

      重要的三張鎖的監(jiān)控表innodb_trx,innodb_locks,innodb_lock_waits


      Qusetion  15:

      處理過mysql哪些案例

      我們可以簡單從mysql四個知識模塊跟他聊聊mysql體系結(jié)構(gòu),數(shù)據(jù)備份恢復(fù),優(yōu)化,高可用集群架構(gòu)

      1. mysql版本的升級

      2. 處理mysql集群的各種坑和問題

      3. 根據(jù)公司業(yè)務(wù)類型,設(shè)計合理mysql庫,表,架構(gòu)。

      4. 定期進行災(zāi)備恢復(fù)演練

      5. 誤刪除數(shù)據(jù)之后,恢復(fù)數(shù)據(jù)

      簡單先從這幾個方向說說,每個問題再展開分析。

      當(dāng)然還會有一些人事上面的問題,例如為啥選我們的公司,你覺得你自己的優(yōu)勢是什么?你期望的薪資大概是多少?這些問題,就很簡單了。我們只要過了技術(shù)面試,這些都不是啥問題了!


      今后還會逐漸展開某個問題的具體剖析,和詳細步驟處理方法!望大家繼續(xù)關(guān)注后期創(chuàng)作

      _____________________________________________________________

      打個小廣告,最近老張我開了視頻課程,希望大家多多支持,和我的文章一樣,定會讓你有不小的收獲!

      MySQL體系結(jié)構(gòu)深入剖析及實戰(zhàn)DBA視頻課程
      課程介紹:

      通過對 MySQL 體系結(jié)構(gòu)深入剖析講解,配合生產(chǎn)環(huán)境備份恢復(fù),主從復(fù)制,高可用集群架構(gòu)和優(yōu)化等實戰(zhàn)演練,讓同學(xué)們可以對 MySQL 數(shù)據(jù)庫有個由淺到深的認識。最后的課程部分還會對面試題總結(jié)進行講解,有利于同學(xué)們可以找到理想的 MySQL DBA 的工作。



      分享題目:【揭秘】數(shù)據(jù)庫面試葵花寶典,讓你面試一次過
      瀏覽地址:http://www.ef60e0e.cn/article/gghgsg.html
      99热在线精品一区二区三区_国产伦精品一区二区三区女破破_亚洲一区二区三区无码_精品国产欧美日韩另类一区
      1. <ul id="0c1fb"></ul>

        <noscript id="0c1fb"><video id="0c1fb"></video></noscript>
        <noscript id="0c1fb"><listing id="0c1fb"><thead id="0c1fb"></thead></listing></noscript>

        浑源县| 澎湖县| 太仆寺旗| 武鸣县| 巴林左旗| 佛山市| 大庆市| 隆安县| 保靖县| 吉首市| 东莞市| 南通市| 牙克石市| 吉木乃县| 镇原县| 惠安县| 伊春市| 怀集县| 潜山县| 区。| 开原市| 周至县| 溧水县| 南溪县| 宜宾市| 大城县| 高邮市| 桂平市| 西昌市| 江孜县| 英德市| 喀喇沁旗| 天镇县| 阿坝县| 临朐县| 承德县| 太白县| 丰台区| 宣城市| 甘谷县| 诸城市|