php數(shù)據(jù)庫承載 mysql數(shù)據(jù)庫承載

PHP+Mysql 的數(shù)據(jù)庫的最大存儲(chǔ)量是多大? 做網(wǎng)站是否穩(wěn)定?

沒限制的, LAMP(linux,apache,mysql,php)架構(gòu)是目前評(píng)價(jià)最好的網(wǎng)站架構(gòu)之一,穩(wěn)定性不必?fù)?dān)心

創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),沛縣企業(yè)網(wǎng)站建設(shè),沛縣品牌網(wǎng)站建設(shè),網(wǎng)站定制,沛縣網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,沛縣網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

什么叫系統(tǒng)數(shù)據(jù)庫承載量

參照 zhishemi521 的解釋,數(shù)據(jù)庫承載量是不是指的設(shè)計(jì)的數(shù)據(jù)庫能夠支持的模塊的多少呢,承載量規(guī)劃不明確能不能夠理解為模塊的劃分不夠明朗,不能夠很好的支持后續(xù)模塊的添加

PHP中高級(jí)面試題 – 第三天

一、簡(jiǎn)述一下MongoDB的應(yīng)用場(chǎng)景

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

更高的寫入負(fù)載

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

高可用性

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

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

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

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

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

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

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

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

1、為什么要分表

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

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

2、分表的方案

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

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

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

優(yōu)點(diǎn):擴(kuò)展性好,沒有多個(gè)分表后的復(fù)雜操作(php 代碼)

缺點(diǎn):?jiǎn)蝹€(gè)表的數(shù)據(jù)量還是沒有變,一次操作所花的時(shí)間還是那么多,硬件開銷大。

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

* 什么是主從復(fù)制

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

* 主從復(fù)制的原理:

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

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

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

* 主從復(fù)制的作用

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

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

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

* 主從復(fù)制的幾種方式:

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

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

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

這個(gè)功能,是由google為MYSQL引入的。

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

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

php可以支持目前主流的數(shù)據(jù)庫

php支持的數(shù)據(jù)庫有很多噢,下面列舉一下!

MySQL

MySQL 是最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),在 WEB 應(yīng)用方面 MySQL 是最好的 RDBMS(Relational Database Management System:關(guān)系數(shù)據(jù)庫管理系統(tǒng))應(yīng)用軟件之一。

MsSql

ms SQL是指微軟的SQLServer數(shù)據(jù)庫服務(wù)器,它是一個(gè)數(shù)據(jù)庫平臺(tái),提供數(shù)據(jù)庫的從服務(wù)器到終端的完整的解決方案,其中數(shù)據(jù)庫服務(wù)器部分,是一個(gè)數(shù)據(jù)庫管理系統(tǒng),用于建立、使用和維護(hù)數(shù)據(jù)庫。

Oracle

oracle是甲骨文公司的一款關(guān)系數(shù)據(jù)庫管理系統(tǒng)。它是在數(shù)據(jù)庫領(lǐng)域一直處于領(lǐng)先地位的產(chǎn)品??梢哉fOracle數(shù)據(jù)庫系統(tǒng)是目前世界上流行的關(guān)系數(shù)據(jù)庫管理系統(tǒng),系統(tǒng)可移植性好、使用方便、功能強(qiáng),適用于各類大、中、小、微機(jī)環(huán)境。它是一種高效率、可靠性好的、適應(yīng)高吞吐量的數(shù)據(jù)庫方案。

Access

Access是由微軟發(fā)布的關(guān)系數(shù)據(jù)庫管理系統(tǒng)。它結(jié)合了 MicrosoftJet Database Engine 和 圖形用戶界面兩項(xiàng)特點(diǎn),是 Microsoft Office 的系統(tǒng)程序之一。

PostgreSQL

PostgreSQL是一種特性非常齊全的自由軟件的對(duì)象-關(guān)系型數(shù)據(jù)庫管理系統(tǒng)(ORDBMS),是以加州大學(xué)計(jì)算機(jī)系開發(fā)的POSTGRES,4.2版本為基礎(chǔ)的對(duì)象關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。POSTGRES的許多領(lǐng)先概念只是在比較遲的時(shí)候才出現(xiàn)在商業(yè)網(wǎng)站數(shù)據(jù)庫中。

InterBase

InterBase是一種關(guān)系數(shù)據(jù)管理系統(tǒng)(Relational database management system RDBMS),它提供了在單機(jī)或多用戶環(huán)境中的快速數(shù)據(jù)處理及共享的工具。InterBase的核心是提供透明的多機(jī)種支持的網(wǎng)絡(luò)運(yùn)行服務(wù)器技術(shù)。InterBase是可以在Windows 95、Windows NT、Novell NetWare及多種UNIX操作系統(tǒng)上運(yùn)行的工具。

CUBRID

CUBRID是一個(gè)全面開源,且完全免費(fèi)的關(guān)系數(shù)據(jù)庫管理系統(tǒng)。

dBase

dBase是第一個(gè)在個(gè)人電腦上被廣泛使用的單機(jī)版數(shù)據(jù)庫系統(tǒng)。

Firebird/InterBase

Firebird特性介紹firebird是一個(gè)全功能的,強(qiáng)大高效的,輕量級(jí),免維護(hù)的數(shù)據(jù)庫。

IBM DB2

IBM DB2 是美國IBM公司開發(fā)的一套關(guān)系型數(shù)據(jù)庫管理系統(tǒng)

Informix

Informix是IBM公司出品的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)家族。

MaxDB

MaxDB是一種企業(yè)級(jí)數(shù)據(jù)庫管理系統(tǒng)。

MongoDB

MongoDB 是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫。

mSQL

mSQL(mini SQL)是一個(gè)單用戶數(shù)據(jù)庫管理系統(tǒng),個(gè)人使用免費(fèi),商業(yè)使用收費(fèi)。由于它的短小精悍,使其開發(fā)的應(yīng)用系統(tǒng)特別受到互聯(lián)網(wǎng)用戶青睞。

SQLite

SQLite,是一款輕型的數(shù)據(jù)庫,是遵守ACID的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),它包含在一個(gè)相對(duì)小的C庫中。

SQLSRV

SQL Server(SQLSRV )是由Microsoft開發(fā)和推廣的關(guān)系數(shù)據(jù)庫管理系統(tǒng)(RDBMS)。

Sybase

美國Sybase公司研制的一種關(guān)系型數(shù)據(jù)庫系統(tǒng),是一種典型的UNIX或WindowsNT平臺(tái)上客戶機(jī)/服務(wù)器環(huán)境下的大型數(shù)據(jù)庫系統(tǒng)。

tokyo_tyrant

一個(gè)可持久化數(shù)據(jù)的,好處是速度不錯(cuò),而且大至兼容Memcached的文本協(xié)議,客戶端可以繼續(xù)使用SpyMemcached。

希望對(duì)你有幫助,謝謝采納!

標(biāo)題名稱:php數(shù)據(jù)庫承載 mysql數(shù)據(jù)庫承載
網(wǎng)頁地址:http://muchs.cn/article16/hjsdgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、用戶體驗(yàn)App設(shè)計(jì)、定制開發(fā)網(wǎng)站維護(hù)、面包屑導(dǎo)航

廣告

聲明:本網(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)

網(wǎng)站托管運(yùn)營(yíng)