Linux運(yùn)維(數(shù)據(jù)庫(kù)專題)面試題-創(chuàng)新互聯(lián)

1、什么是關(guān)系型數(shù)據(jù)庫(kù)?什么是非關(guān)系型數(shù)據(jù)庫(kù)?

創(chuàng)新互聯(lián)從2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元溫嶺做網(wǎng)站,已為上家服務(wù),為溫嶺各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:18982081108

 關(guān)系型數(shù)據(jù)庫(kù)概念:可以理解為一第二維表,每個(gè)關(guān)系都具有一個(gè)關(guān)系名,就是通常說的表名,是指愛用了關(guān)系模型來組織的數(shù)據(jù)庫(kù)

 非關(guān)系型數(shù)據(jù)庫(kù):關(guān)系型數(shù)據(jù)庫(kù)暴露了很多難以克服的問題,而非關(guān)系型的數(shù)據(jù)庫(kù)則由于其本身的特點(diǎn)得到了非常迅速的發(fā)展。NoSQL數(shù)據(jù)庫(kù)的產(chǎn)生就是為了解決大規(guī)模數(shù)據(jù)集合多重?cái)?shù)據(jù)種類帶來的挑戰(zhàn),尤其是大數(shù)據(jù)應(yīng)用難題。

2、Redis、Memcached和MongoDB優(yōu)點(diǎn)和局限性?

  Memcached

  Memcached的優(yōu)點(diǎn):

  Memcached可以利用多核優(yōu)勢(shì),單實(shí)例吞吐量極高,可以達(dá)到幾十萬(wàn)QPS(取決于key、value的字節(jié)大小以及服務(wù)  器硬件性能,日常環(huán)境中QPS高峰大約在4-6w左右)。適用于大程度扛量。

  支持直接配置為session handle。

  Memcached的局限性:

  只支持簡(jiǎn)單的key/value數(shù)據(jù)結(jié)構(gòu),不像Redis可以支持豐富的數(shù)據(jù)類型。

  無法進(jìn)行持久化,數(shù)據(jù)不能備份,只能用于緩存使用,且重啟后數(shù)據(jù)全部丟失。

  無法進(jìn)行數(shù)據(jù)同步,不能將MC中的數(shù)據(jù)遷移到其他MC實(shí)例中。

  Memcached內(nèi)存分配采用Slab Allocation機(jī)制管理內(nèi)存,value大小分布差異較大時(shí)會(huì)造成內(nèi)存利用率降低,并引   發(fā)低利用率時(shí)依然出現(xiàn)踢出等問題。需要用戶注重value設(shè)計(jì)。

  Redis

  Redis的優(yōu)點(diǎn):

  支持多種數(shù)據(jù)結(jié)構(gòu),如 string(字符串)、 list(雙向鏈表)、dict(hash表)、set(集合)、zset(排序set)、hyperloglog(基數(shù)估算)

  支持持久化操作,可以進(jìn)行aof及rdb數(shù)據(jù)持久化到磁盤,從而進(jìn)行數(shù)據(jù)備份或數(shù)據(jù)恢復(fù)等操作,較好的防止數(shù)據(jù)丟失的手段。

  支持通過Replication進(jìn)行數(shù)據(jù)復(fù)制,通過master-slave機(jī)制,可以實(shí)時(shí)進(jìn)行數(shù)據(jù)的同步復(fù)制,支持多級(jí)復(fù)制和增量復(fù)制,master-slave機(jī)制是Redis進(jìn)行HA的重要手段。

  單線程請(qǐng)求,所有命令串行執(zhí)行,并發(fā)情況下不需要考慮數(shù)據(jù)一致性問題。

  支持pub/sub消息訂閱機(jī)制,可以用來進(jìn)行消息訂閱與通知。

  支持簡(jiǎn)單的事務(wù)需求,但業(yè)界使用場(chǎng)景很少,并不成熟。

  Redis的局限性:

  Redis只能使用單線程,性能受限于CPU性能,故單實(shí)例CPU高才可能達(dá)到5-6wQPS每秒(取決于數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)大小以及服務(wù)器硬件性能,日常環(huán)境中QPS高峰大約在1-2w左右)。

  支持簡(jiǎn)單的事務(wù)需求,但業(yè)界使用場(chǎng)景很少,并不成熟,既是優(yōu)點(diǎn)也是缺點(diǎn)。

  Redis在string類型上會(huì)消耗較多內(nèi)存,可以使用dict(hash表)壓縮存儲(chǔ)以降低內(nèi)存耗用。

  Mogodb

  mogodb是一種文檔性的數(shù)據(jù)庫(kù)。先解釋一下文檔的數(shù)據(jù)庫(kù),即可以存放xml、json、bson類型系那個(gè)的數(shù)據(jù)。這些數(shù)據(jù)具備自述性(self-describing),呈現(xiàn)分層的樹狀數(shù)據(jù)結(jié)構(gòu)。redis可以用hash存放簡(jiǎn)單關(guān)系型數(shù)據(jù)。

  mogodb存放json格式數(shù)據(jù)。

  適合場(chǎng)景:事件記錄、內(nèi)容管理或者博客平臺(tái),比如評(píng)論系統(tǒng)。

3、Redis兩種保存快照的方式是什么?他們有什么區(qū)別?

  快照模式和AOF模式

  快照模式:將數(shù)據(jù)保存在內(nèi)存中,再保存到磁盤中,性能高,但是可能會(huì)有少量數(shù)據(jù)丟失

  AOF模式:性能差,一致性要求高,可以選用這種方法,一般生產(chǎn)環(huán)境兩種都開

4、什么是主???什么是外???什么是索引?索引的優(yōu)缺點(diǎn)是什么?

  主?。褐麝P(guān)鍵字(主鍵,primary key)是被挑選出來,作表的行的惟一標(biāo)識(shí)的候選關(guān)鍵字。一個(gè)表只有一個(gè)主關(guān)   鍵字。主關(guān)鍵字又可以稱為主鍵。 主鍵可以由一個(gè)字段,也可以由多個(gè)字段組成,分別成為單字段主鍵或多字段主鍵。

  外?。罕淼耐怄I就是 這個(gè)字段 是關(guān)聯(lián)著別的表,且是別的表的主鍵。

  索引:相當(dāng)于書中的目錄

  優(yōu)點(diǎn):加快查詢表記錄的速度

  缺點(diǎn):會(huì)減慢對(duì)表記錄的寫(insert upadate delete)的速度

  索引會(huì)占用物理磁盤空間

  db.frm 保存表結(jié)構(gòu)

  db.MYD 保存表里數(shù)據(jù)

  db.MYI 保存索引信息文件

5、主健、外健的作用是什么?并說明主健特點(diǎn)?

  主健作用:1)保證實(shí)體的完整性;

       2)加快數(shù)據(jù)庫(kù)的操作速度

       3)在表中添加新記錄時(shí),ACCESS會(huì)自動(dòng)檢查新記錄的主鍵值,不允許該值與其他記錄的主鍵值重           復(fù)。

       4) ACCESS自動(dòng)按主鍵值的順序顯示表中的記錄。如果沒有定義主鍵,則按輸入記錄的順序顯示表中的         記錄。

    特點(diǎn) :

       1) 一個(gè)表中只能有一個(gè)主鍵。如果在其他字段上建立主鍵,則原來的主鍵就會(huì)取消。在ACCESS中,雖         然主鍵不是必需的,但最好為每個(gè)表都設(shè)置一個(gè)主鍵。

       2)主鍵的值不可重復(fù),也不可為空(NULL)。

  外健作用: 使兩張表形成關(guān)聯(lián),外鍵只能引用外表中的列的值!

6、什么是存儲(chǔ)引擎?

  MySQL中的數(shù)據(jù)用各種不同的技術(shù)存儲(chǔ)在文件(或者內(nèi)存)中。這些技術(shù)中的每一種技術(shù)都使用不同的存儲(chǔ)機(jī)制、   索引技巧、鎖定水平并且最終提供廣泛的不同的功能和能力。

  通過選擇不同的技術(shù),  你能夠獲得額外的速度或者功能,從而改善你的應(yīng)用的整體功能。

7、指出MySQL引擎中Innodb與MyIsam的區(qū)別,生產(chǎn)環(huán)境中怎么選用存儲(chǔ)引擎?

  InnoDB: 支持行鎖,支持事務(wù),支持外健,批量插入速度慢,內(nèi)存使用高,空間使用高,數(shù)據(jù)可壓縮,獨(dú)享表空       間

  MyISAM:支持表鎖,不支持事務(wù),不支持外健,批量插入速度快,內(nèi)存使用低,空間使用低,數(shù)據(jù)不可壓縮,共       享表空間

  在一般的既有讀又有寫的業(yè)務(wù)中,建議選用Innodb引擎。

  只有讀沒有寫的業(yè)務(wù)就用MyIsam引擎

8、什么是幻讀?什么是臟讀?什么是不可重復(fù)讀?

  幻讀:是指當(dāng)事務(wù)不是獨(dú)立執(zhí)行時(shí)發(fā)生的一種現(xiàn)象,例如第一個(gè)事務(wù)對(duì)一個(gè)表中的數(shù)據(jù)進(jìn)行了修改這種修改涉及      到表中的全部數(shù)據(jù)行。同時(shí)第二個(gè)事務(wù)也修改這個(gè)表中的數(shù)據(jù)

     這種修改是向表中插入一行新數(shù)據(jù)。那么以后就會(huì)發(fā)生操作第一個(gè)事務(wù)的用戶發(fā)現(xiàn)表中還有沒有修改的數(shù)      據(jù)行,就好象發(fā)生了幻覺一樣。

  臟讀:臟讀就是指當(dāng)一個(gè)事務(wù)正在訪問數(shù)據(jù)并且對(duì)數(shù)據(jù)進(jìn)行了修改而這種修改還沒有提交到數(shù)據(jù)庫(kù)中,這時(shí)另外  一個(gè)事務(wù)也訪問這個(gè)數(shù)據(jù),然后使用了這個(gè)數(shù)據(jù),實(shí)際這個(gè)數(shù)據(jù)并沒有提交還不能正常使用

  不可重復(fù)讀:是指在一個(gè)事務(wù)內(nèi)多次讀同一數(shù)據(jù)。在這個(gè)事務(wù)還沒有結(jié)束時(shí)另外一個(gè)事務(wù)也訪問該同一數(shù)據(jù)。那么在第一個(gè)事務(wù)中的兩次讀數(shù)據(jù)之間,由于第二個(gè)事務(wù)的修改,那么第一個(gè)事務(wù)兩次讀到的的數(shù)據(jù)可能是不一樣的。這樣在一個(gè)事務(wù)內(nèi)兩次讀到的數(shù)據(jù)是不一樣的因此稱為是不可重復(fù)讀。

9、什么是事務(wù)?什么是回滾?

  事務(wù):你的一次sql操作從開始執(zhí)行到正確執(zhí)行結(jié)速的這個(gè)過程稱為事務(wù)

  事務(wù)回滾:恢復(fù)到未操作一切動(dòng)作前的狀態(tài)

10、事務(wù)隔離的四種級(jí)別是哪四種?分別代表什么意思?

  未提交讀(read uncommitted):會(huì)出現(xiàn)臟讀、不可重復(fù)讀和幻讀。

  提交讀(read committed):會(huì)出現(xiàn)不可重復(fù)讀和幻讀。

  重復(fù)讀(repeatable read):會(huì)出現(xiàn)幻讀。

  串行化(serializable):隔離級(jí)別高,不允許出現(xiàn)臟讀、不可重復(fù)讀和幻讀。

11、事務(wù)有幾大特性?分別代表什么意思?

  事務(wù)具有四個(gè)特征:原子性( Atomicity )、一致性( Consistency )、隔離性( Isolation )和持續(xù)性( Durability )。這四個(gè)特性簡(jiǎn)稱為 ACID 特性。

  原子性: 事務(wù)是數(shù)據(jù)庫(kù)的邏輯工作單位,事務(wù)中包含的各操作要么都做,要么都不做

  一致性: 事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫(kù)從一個(gè)一致性狀態(tài)變到另一個(gè)一致性狀態(tài)。因此當(dāng)數(shù)據(jù)庫(kù)只包含成功事務(wù)提交的結(jié)果時(shí),就說數(shù)據(jù)庫(kù)處于一致性狀態(tài)。如果數(shù)據(jù)庫(kù)系統(tǒng) 運(yùn)行中發(fā)生故障,有些事務(wù)尚未完成就被迫中斷,這些未完成事務(wù)對(duì)數(shù)據(jù)庫(kù)所做的修改有一部分已寫入物理數(shù)據(jù)庫(kù),這時(shí)數(shù)據(jù)庫(kù)就處于一種不正確的狀態(tài),或者說是 不一致的狀態(tài)。

  隔離性:一個(gè)事務(wù)的執(zhí)行不能其它事務(wù)干擾。即一個(gè)事務(wù)內(nèi)部的操作及使用的數(shù)據(jù)對(duì)其它并發(fā)事務(wù)是隔離的,并發(fā)執(zhí)行的各個(gè)事務(wù)之間不能互相干擾。

  持續(xù)性:也稱永久性,指一個(gè)事務(wù)一旦提交,它對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)的改變就應(yīng)該是永久性的。接下來的其它操作或故障不應(yīng)該對(duì)其執(zhí)行結(jié)果有任何影響

12、數(shù)據(jù)庫(kù)默認(rèn)的三個(gè)庫(kù)是什么庫(kù)?分別代表什么意思?

  information_schema: 主要存儲(chǔ)系統(tǒng)中的一些數(shù)據(jù)庫(kù)對(duì)像信息,如用戶信息,列信息,權(quán)限信息,字符集信息和分區(qū)信息等

  performance_schema: 主要存儲(chǔ)數(shù)據(jù)庫(kù)服務(wù)器性能參數(shù)

  mysql:主要存儲(chǔ)系統(tǒng)的用戶權(quán)限信息

  test:該數(shù)據(jù)庫(kù)為MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)自動(dòng)創(chuàng)建的測(cè)試數(shù)據(jù)庫(kù),任何用戶都可以使用

13、MySQL鎖粒度是什么?MySQL有幾種鎖級(jí)別?說一下他的特性?

  就是通常我們所說的鎖級(jí)別。

  MySQL有三種鎖的級(jí)別:頁(yè)級(jí)、表級(jí)、行級(jí)。

  MySQL這3種鎖的特性可大致歸納如下:

  表級(jí)鎖:開銷小,加鎖快;不會(huì)出現(xiàn)死鎖;鎖定粒度大,發(fā)生鎖沖突的概率高,并發(fā)度最低。

  行級(jí)鎖:開銷大,加鎖慢;會(huì)出現(xiàn)死鎖;鎖定粒度最小,發(fā)生鎖沖突的概率最低,并發(fā)度也高。

  頁(yè)面鎖:開銷和加鎖時(shí)間界于表鎖和行鎖之間;會(huì)出現(xiàn)死鎖;鎖定粒度界于表鎖和行鎖之間,并發(fā)度一般

14、說一下數(shù)據(jù)庫(kù)的幾種備份方式和包啟的意思?

  冷備(cold backup):需要關(guān)mysql服務(wù),讀寫請(qǐng)求均不允許狀態(tài)下進(jìn)行;

  溫備(warm backup): 服務(wù)在線,但僅支持讀請(qǐng)求,不允許寫請(qǐng)求;

  熱備(hot backup):備份的同時(shí),業(yè)務(wù)不受影響。

15、簡(jiǎn)述如何搭建主從數(shù)據(jù)庫(kù)以及工作模式?

搭建:1、主數(shù)據(jù)庫(kù)修改my.cnf配置文件,打開log-bin功能,設(shè)置server-id,重啟服務(wù)

   2、在主服務(wù)器上授權(quán)服戶可以從 從服務(wù)器 上連接自已,且有拷貝數(shù)據(jù)的權(quán)限

   3、從服務(wù)器上修改my.cnf文件,設(shè)置server-id,重啟服務(wù)

   4、在從服務(wù)器上使用授權(quán)用戶測(cè)試是否能連接登陸主數(shù)據(jù)庫(kù)服務(wù)器

   5、從服務(wù)器上建立同步賬戶信息

工作模式:從服務(wù)器的IO線程連接主數(shù)據(jù)庫(kù)的IO線程,并從主服務(wù)器獲取二進(jìn)制日志,保存為本地的中繼日志,

 接著通過SQL線程執(zhí)行中繼日志里面的SQL語(yǔ)句,從而使主從庫(kù)保持一致

16、主從數(shù)據(jù)庫(kù)不能同步怎么辦?

   1、通過跳過錯(cuò)誤來繼續(xù)執(zhí)行同步,適用于對(duì)數(shù)據(jù)一致性不是那么高的情況下

    set global sql_slave_skip_counter =1;

   2、重新做主從,完全同步

    該方法適用于主從庫(kù)數(shù)據(jù)相差較大,或者要求數(shù)據(jù)完全統(tǒng)一的情況

    熱備方式修復(fù)主從庫(kù)

    操作過程

    1)先關(guān)閉從數(shù)據(jù)庫(kù)

    2)記錄主庫(kù)的log_file文件名和位置點(diǎn)

    3)導(dǎo)出主庫(kù)的數(shù)據(jù)庫(kù),拷貝到從庫(kù)機(jī)器上

    4)從庫(kù)刪除以前的老庫(kù),導(dǎo)進(jìn)從主庫(kù)拷貝過來的新庫(kù)

    5)changes主庫(kù)的Log_file和位置點(diǎn)

    6)開啟從庫(kù)

17、怎么清理數(shù)據(jù)庫(kù)碎片?

  查看哪個(gè)表空間最占用空間

  對(duì)大表進(jìn)行move

18、MariaDB集群的功能和優(yōu)勢(shì)是什么?

  功能:

  同步復(fù)制

  真正的multi-master,即所有節(jié)點(diǎn)可以同時(shí)讀寫數(shù)據(jù)庫(kù)

  自動(dòng)的節(jié)點(diǎn)成員控制,失效節(jié)點(diǎn)自動(dòng)被清除

  新節(jié)點(diǎn)加入數(shù)據(jù)自動(dòng)復(fù)制

  真正的并行復(fù)制,行級(jí)

  用戶可以直接連接集群,使用感受上與MySQL完全一致

  優(yōu)勢(shì):

  因?yàn)槭嵌嘀?,所以不存在Slave lag(延遲)

  不存在丟失交易的情況

  同時(shí)具有讀和寫的擴(kuò)展能力

  更小的客戶端延遲

  節(jié)點(diǎn)間數(shù)據(jù)是同步的,而Master/Slave模式是異步的,不同slave上的binlog可能是不同的

19、數(shù)據(jù)庫(kù)有哪幾種日志,分別有什么作用?

   二進(jìn)制日志:該日志文件會(huì)以二進(jìn)制形式記錄數(shù)據(jù)庫(kù)的各種操作,但是卻不記錄查詢操作

    錯(cuò)誤日志:該日志文件會(huì)記錄MySQL服務(wù)器啟動(dòng)、關(guān)閉和運(yùn)行時(shí)出錯(cuò)等信息

    慢查詢?nèi)罩荆河涗泩?zhí)行時(shí)間超過指定時(shí)間的各種操作,通過工具分析慢查詢?nèi)罩究梢远▊僊ySQL服                 務(wù)器性能瓶頸所在。

    通用查詢?nèi)罩荆涸撊罩居涗汳ySQL服務(wù)器的啟動(dòng)和關(guān)閉信息、客戶端的連接信息、更新數(shù)據(jù)記錄                     SQL語(yǔ)句和查詢數(shù)據(jù)記錄SQL語(yǔ)句

20、MySQL出現(xiàn)sql鎖是怎么回事,如何優(yōu)化?

  使用show full processlist查看鎖表的命令,再確定是sql語(yǔ)句的效率問題,還是沒建索引,或是數(shù)據(jù)庫(kù)引擎的   問題。

21、如何優(yōu)化MySQL?

  1、對(duì)查詢頻繁的表加主鍵或索引

  2、對(duì)重要數(shù)據(jù)的mysql做主主或主從的高可用與讀寫分離

  3、對(duì)數(shù)據(jù)量大的表或庫(kù),進(jìn)行分表或分庫(kù),減輕總表大小。

  4、優(yōu)化my.cnf在內(nèi)存參數(shù)。提高內(nèi)存的使用率。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。

當(dāng)前名稱:Linux運(yùn)維(數(shù)據(jù)庫(kù)專題)面試題-創(chuàng)新互聯(lián)
文章地址:http://muchs.cn/article14/cdscge.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供標(biāo)簽優(yōu)化、做網(wǎng)站、虛擬主機(jī)、商城網(wǎng)站、云服務(wù)器移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)