欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

php面試數(shù)據(jù)庫 php面試2021

PHP中高級面試題 – 第三天

一、簡述一下MongoDB的應用場景

創(chuàng)新互聯(lián)建站主營關(guān)嶺網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,成都App制作,關(guān)嶺h5微信小程序開發(fā)搭建,關(guān)嶺網(wǎng)站營銷推廣歡迎關(guān)嶺等地區(qū)企業(yè)咨詢

mongodb 支持副本集、索引、自動分片,可以保證較高的性能和可用性。

更高的寫入負載

默認情況下,MongoDB 更側(cè)重高數(shù)據(jù)寫入性能,而非事務安全,MongoDB 很適合業(yè)務系統(tǒng)中有大量 “低價值” 數(shù)據(jù)的場景。但是應當避免在高事務安全性的系統(tǒng)中使用 MongoDB,除非能從架構(gòu)設計上保證事務安全。

高可用性

MongoDB 的復副集 (Master-Slave) 配置非常簡潔方便,此外,MongoDB 可以快速響應的處理單節(jié)點故障,自動、安全地完成故障轉(zhuǎn)移。這些特性使得 MongoDB 能在一個相對不穩(wěn)定(如云主機)的環(huán)境中,保持高可用性。

數(shù)據(jù)量很大或者未來會變得很大

依賴數(shù)據(jù)庫 (MySQL) 自身的特性,完成數(shù)據(jù)的擴展是較困難的事,在 MySQL 中,當一個單達表到 5-10GB 時此祥會出現(xiàn)明顯的性能降級,此時需要通過數(shù)據(jù)的水平和垂直拆分、庫的拆分完成擴展,使用 MySQL 通常需要借助驅(qū)動層或代理層完成這類需求。而 MongoDB 內(nèi)建了多種數(shù)據(jù)分片的特性,可以很好地適應大數(shù)據(jù)量的需求。

基于位置的數(shù)據(jù)查詢

MongoDB 支持二維空間索引,因此可以快速及精確地從指定位置獲取數(shù)據(jù)。

表結(jié)構(gòu)不明確

在一些傳統(tǒng) RDBMS 中,增加一個字段會鎖住整個數(shù)據(jù)庫 / 表,或者在執(zhí)行一個重負載的請求時會明顯造成其它請求的性能降級。通常發(fā)生在數(shù)據(jù)表大于 1G 的時候(當大于 1TB 時更甚)。 因 MongoDB 是文檔型數(shù)據(jù)庫,為非結(jié)構(gòu)貨的文檔增加一個新字段是很快速的操作,并且不會影響到已有數(shù)據(jù)。另外一個好處當業(yè)務數(shù)據(jù)發(fā)生變化時,是將不再需要由 DBA 修改表結(jié)構(gòu)。

二、數(shù)據(jù)庫設計經(jīng)驗,為什么進行分表桐游?分庫?一般多少數(shù)據(jù)量開始分表?分庫?分庫分表的目的?

1、為什么要分表

當一張表的數(shù)據(jù)達到幾百萬時,你查詢一次所花的時間會變多,如果有聯(lián)合查詢的話,有可能會死在那兒了。分表的目的就在于此,減小數(shù)據(jù)庫的負擔,縮短查詢時間。日常開發(fā)中我們經(jīng)常會遇到大表的情況,所謂的大表是指存儲了百萬級乃至千萬級條記錄的表。這樣的表過于龐大,導致數(shù)據(jù)庫在查詢和插入的時候耗時太長,性能低下,如果涉及聯(lián)合查詢的情況,性能會更加糟糕。

分表和表分區(qū)的目的就是減少數(shù)據(jù)庫的負擔,提高數(shù)據(jù)庫的效率,通常點來講就是提高表的增刪改查效率。數(shù)據(jù)庫中的數(shù)據(jù)量不一定是可控的,在未進行分庫分表的情況下,隨著時間和業(yè)務的發(fā)展,庫中的表會越來越多,表中的數(shù)據(jù)量也會越來越大,相應地,數(shù)據(jù)操作,增刪改查的開銷也會越來越大;另外,由于無法進行分布式式部署,而一臺服務器的資源(CPU、磁盤、內(nèi)存、IO 等)是有限的,最終數(shù)據(jù)庫所能承載的數(shù)據(jù)量、數(shù)據(jù)處理能力都將遭遇瓶頸。

2、分表的方案

做 mysql 集群,有人會問 mysql 集群,根分表有什么關(guān)系嗎?雖然它不是實際意義上的分表,但是它啟到了分表的作用,做集群的意義是什么呢?為一個數(shù)據(jù)庫減輕負擔,說白了就是減少 sql 排隊隊列中的 sql 的數(shù)量,舉個例子:有 10 個 sql 請求,如果放在一個數(shù)據(jù)庫服務器的排隊隊列中,他要等很長時間,如果把這 10 個 sql 請求,分配到局扒銷 5 個數(shù)據(jù)庫服務器的排隊隊列中,一個數(shù)據(jù)庫服務器的隊列中只有 2 個,這樣等待時間是不是大大的縮短了呢?

linux mysql proxy 的安裝,配置,以及讀寫分離

mysql replication 互為主從的安裝及配置,以及數(shù)據(jù)同步

優(yōu)點:擴展性好,沒有多個分表后的復雜操作(php 代碼)

缺點:單個表的數(shù)據(jù)量還是沒有變,一次操作所花的時間還是那么多,硬件開銷大。

三、簡述一下數(shù)據(jù)庫主從復制,讀寫分離

* 什么是主從復制

主從復制,是用來建立一個和主數(shù)據(jù)庫完全一樣的數(shù)據(jù)庫環(huán)境,稱為從數(shù)據(jù)庫;

* 主從復制的原理:

1.數(shù)據(jù)庫有個bin-log二進制文件,記錄了所有的sql語句。

2.只需要把主數(shù)據(jù)庫的bin-log文件中的sql語句復制。

3.讓其從數(shù)據(jù)的relay-log重做日志文件中再執(zhí)行一次這些sql語句即可。

* 主從復制的作用

1.做數(shù)據(jù)的熱備份,作為后備數(shù)據(jù)庫,主數(shù)據(jù)庫服務器故障后,可切換到從數(shù)據(jù)庫繼續(xù)工作,避免數(shù)據(jù)丟失。

2.架構(gòu)的擴展。業(yè)務量越來越大,I/O訪問頻率過高,單機無法滿足,此時做多庫的存儲,降低磁盤I/O訪問頻率,提高單機的I/O性能

3.主從復制是讀寫分離的基礎,使數(shù)據(jù)庫能制成更大 的并發(fā)。例如子報表中,由于部署報表的sql語句十分慢,導致鎖表,影響前臺的服務。如果前臺服務使用master,報表使用slave,那么報表sql將不會造成前臺所,保證了前臺的訪問速度。

* 主從復制的幾種方式:

1.同步復制:所謂的同步復制,意思是master的變化,必須等待slave-1,slave-2,…,slave-n完成后才能返回。

2.異步復制:如同AJAX請求一樣。master只需要完成自己的數(shù)據(jù)庫操作即可。至于slaves是否收到二進制日志,是否完成操作,不用關(guān)心。MYSQL的默認設置。

3.半同步復制:master只保證slaves中的一個操作成功,就返回,其他slave不管。

這個功能,是由google為MYSQL引入的。

* 關(guān)于讀寫分離

在完成主從復制時,由于slave是需要同步master的。所以對于insert/delete/update這些更新數(shù)據(jù)庫的操作,應該在master中完成。而select的查詢操作,則落下到slave中。

php連接mysql數(shù)據(jù)庫

下載個phpmyadmin,用這個查看和管理數(shù)據(jù)庫

如果你要在你的代碼中查看,那你要用代碼把數(shù)據(jù)庫記錄取世碼鬧出,顯示出搜罩來

-----------------------------------------------------

問題補充:

重點在于它把表存到哪里去了?總得有個位置吧。

你連接數(shù)據(jù)庫的時候是怎么連接的?數(shù)據(jù)庫的host,模禪dbname你連接的那個,你就到那個里面去看啊

新聞名稱:php面試數(shù)據(jù)庫 php面試2021
路徑分享:http://chinadenli.net/article15/dsppgdi.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供Google網(wǎng)站維護網(wǎng)站排名網(wǎng)站導航企業(yè)網(wǎng)站制作建站公司

廣告

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

外貿(mào)網(wǎng)站制作