新聞中心

PHP 可以連接的數(shù)據(jù)庫種類較多,其中 mysql 數(shù)據(jù)庫與其兼容較好,在 PHP 數(shù)據(jù)庫開發(fā)中被廣泛地應(yīng)用。
MySQL 是什么
MySQL 是一款安全、跨平臺(tái)、高效的,并與 PHP、Java 等主流編程語言緊密結(jié)合的數(shù)據(jù)庫系統(tǒng)。該數(shù)據(jù)庫系統(tǒng)是由瑞典的 MySQL AB 公司開發(fā)、發(fā)布并支持,由 MySQL 的初始開發(fā)人員 David Axmark 和 Michael Monty Widenius 于 1995 年建立的。
MySQL 的象征符號(hào)是一只名為 Sakila 的海豚,代表著 MySQL 數(shù)據(jù)庫的速度、能力、精確和優(yōu)秀本質(zhì)。
圖:MySQL 圖標(biāo)
目前 MySQL 被廣泛地應(yīng)用在 Internet 上的中小型網(wǎng)站中。由于其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點(diǎn),使得很多公司都采用 MySQL 數(shù)據(jù)庫以降低成本。
MySQL 數(shù)據(jù)庫可以稱得上是目前運(yùn)行速度最快的 SQL 語言數(shù)據(jù)庫之一。除了具有許多其他數(shù)據(jù)庫所不具備的功能外,MySQL 數(shù)據(jù)庫還是一種完全免費(fèi)的產(chǎn)品,用戶可以直接通過網(wǎng)絡(luò)下載 MySQL 數(shù)據(jù)庫,而不必支付任何費(fèi)用。
MySQL 特點(diǎn)
下面總結(jié)了一下 MySQL 具備的特點(diǎn)。
1) 功能強(qiáng)大
MySQL 中提供了多種數(shù)據(jù)庫存儲(chǔ)引擎,各引擎各有所長,適用于不同的應(yīng)用場合,用戶可以選擇最合適的引擎以得到最高性能,可以處理每天訪問量超過數(shù)億的高強(qiáng)度的搜索 Web 站點(diǎn)。MySQL5 支持事務(wù)、視圖、存儲(chǔ)過程、觸發(fā)器等。
2) 支持跨平臺(tái)
MySQL 支持至少 20 種以上的開發(fā)平臺(tái),包括 Linux、Windows、FreeBSD 、IBMAIX、AIX、FreeBSD 等。這使得在任何平臺(tái)下編寫的程序都可以進(jìn)行移植,而不需要對程序做任何的修改。
3) 運(yùn)行速度快
高速是 MySQL 的顯著特性。在 MySQL 中,使用了極快的 B 樹磁盤表(MyISAM)和索引壓縮;通過使用優(yōu)化的單掃描多連接,能夠極快地實(shí)現(xiàn)連接;SQL 函數(shù)使用高度優(yōu)化的類庫實(shí)現(xiàn),運(yùn)行速度極快。
4) 支持面向?qū)ο?/h4>
PHP 支持混合編程方式。編程方式可分為純粹面向?qū)ο?、純粹面向過程、面句對象與面向過程混合 3 種方式。
5) 安全性高
靈活和安全的權(quán)限與密碼系統(tǒng),允許基本主機(jī)的驗(yàn)證。連接到服務(wù)器時(shí),所有的密碼傳輸均采用加密形式,從而保證了密碼的安全。
6) 成本低
MySQL 數(shù)據(jù)庫是一種完全免費(fèi)的產(chǎn)品,用戶可以直接通過網(wǎng)絡(luò)下載。
7) 支持各種開發(fā)語言
MySQL 為各種流行的程序設(shè)計(jì)語言提供支持,為它們提供了很多的 API 函數(shù),包括 PHP、ASP.NET、Java、Eiffel、Python、Ruby、Tcl、C、C++、Perl 語言等。
8) 數(shù)據(jù)庫存儲(chǔ)容量大
MySQL 數(shù)據(jù)庫的最大有效表尺寸通常是由操作系統(tǒng)對文件大小的限制決定的,而不是由 MySQL 內(nèi)部限制決定的。InnoDB 存儲(chǔ)引擎將 InnoDB 表保存在一個(gè)表空間內(nèi),該表空間可由數(shù)個(gè)文件創(chuàng)建,表空間的最大容量為 64TB,可以輕松處理擁有上千萬條記錄的大型數(shù)據(jù)庫。
9) 支持強(qiáng)大的內(nèi)置函數(shù)
PHP 中提供了大量內(nèi)置函數(shù),幾乎涵蓋了 Web 應(yīng)用開發(fā)中的所有功能。它內(nèi)置了數(shù)據(jù)庫連接、文件上傳等功能,MySQL 支持大量的擴(kuò)展庫,如 MySQLi 等,可以為快速開發(fā) Web 應(yīng)用提供便利。
數(shù)據(jù)庫的應(yīng)用
數(shù)據(jù)庫是計(jì)算機(jī)應(yīng)用系統(tǒng)中的一種專門管理數(shù)據(jù)資源的系統(tǒng)。數(shù)據(jù)有多種形式,如文字、數(shù)碼、符號(hào)、圖形、圖像及聲音等,數(shù)據(jù)是所有計(jì)算機(jī)系統(tǒng)所要處理的對象。我們所熟知的一種處理辦法是制作文件,即將處理過程編成程序文件,將所涉及的數(shù)據(jù)按程序要求組成數(shù)據(jù)文件,再用程序來調(diào)用,數(shù)據(jù)文件與程序文件保持著一定的關(guān)系。
在計(jì)算機(jī)應(yīng)用迅速發(fā)展的情況下,這種文件式管理方法便顯出它的不足。比如,它使得數(shù)據(jù)通用性差、不便于移植、在不同文件中存儲(chǔ)大量重復(fù)信息、浪費(fèi)存儲(chǔ)空間、更新不便等。
而數(shù)據(jù)庫系統(tǒng)便能解決上述問題。數(shù)據(jù)庫系統(tǒng)不從具體的應(yīng)用程序出發(fā),而是立足于數(shù)據(jù)本身的管理,它將所有數(shù)據(jù)保存在數(shù)據(jù)庫中,進(jìn)行科學(xué)的組織,并借助于數(shù)據(jù)庫管理系統(tǒng),以它為中介,與各種應(yīng)用程序或應(yīng)用系統(tǒng)接口,使之能方便地使用數(shù)據(jù)庫中的數(shù)據(jù)。
其實(shí)簡單地說,數(shù)據(jù)庫就是一組經(jīng)過計(jì)算機(jī)整理后的數(shù)據(jù),存儲(chǔ)在一個(gè)或多個(gè)文件中,而管理這個(gè)數(shù)據(jù)庫的軟件就稱為數(shù)據(jù)庫管理系統(tǒng)。一般一個(gè)數(shù)據(jù)庫系統(tǒng)(Database System)
可以分為數(shù)據(jù)庫(Database)與數(shù)據(jù)管理系統(tǒng)(Database Management System,DBMS)兩個(gè)部分。主流的數(shù)據(jù)庫軟件有 Oracle、Informix、Sybase、SQL Server、PostgreSQL、MySQL、Access、FoxPro 和 Teradata 等等。
數(shù)據(jù)庫在 Web 開發(fā)中的重要地位
歸根結(jié)底,動(dòng)態(tài)網(wǎng)站都是對數(shù)據(jù)進(jìn)行操作,我們平時(shí)瀏覽網(wǎng)頁時(shí),會(huì)發(fā)現(xiàn)網(wǎng)頁的內(nèi)容會(huì)經(jīng)常變化,而頁面的主體結(jié)構(gòu)框架沒變,新聞就是一個(gè)典型。這是因?yàn)槲覀儗⑿侣劥鎯?chǔ)在了數(shù)據(jù)庫中,用戶在瀏覽時(shí),程序就會(huì)根據(jù)用戶所請求的新聞編號(hào),將對應(yīng)的新聞從數(shù)據(jù)庫中讀取出來,然后再以特定的格式響應(yīng)給用戶。
Web 系統(tǒng)的開發(fā)基本上是離不開數(shù)據(jù)庫的,因?yàn)槿魏螙|西都要存放在數(shù)據(jù)庫中。所謂的動(dòng)態(tài)網(wǎng)站就是基于數(shù)據(jù)庫開發(fā)的系統(tǒng),最重要的就是數(shù)據(jù)管理,或者說我們在開發(fā)時(shí)都是在圍繞數(shù)據(jù)庫在寫程序。所以作為一個(gè) Web 程序員,只有先掌握一門數(shù)據(jù)庫,才可能去進(jìn)行軟件開發(fā)。
下圖展示了項(xiàng)目中一個(gè)模塊的開發(fā)流程:將網(wǎng)站的內(nèi)容存儲(chǔ)在 MySQL 數(shù)據(jù)庫中;然后使用 PHP 通過 SQL 查詢獲取這些內(nèi)容并以 HTML 格式輸出到瀏覽器中顯示?;蛘邔⒂脩粼诒韱沃休敵龅臄?shù)據(jù),通過在 PHP 程序中執(zhí)行 SQL 查詢,將數(shù)據(jù)保存在 MySQL 數(shù)據(jù)庫中。也可以在 PHP 腳本中接受用戶在網(wǎng)頁上的其他相關(guān)操作,再通過 SQL 查詢對數(shù)據(jù)庫中存儲(chǔ)的網(wǎng)站內(nèi)容進(jìn)行管理。
圖:基于數(shù)據(jù)庫的 Web 系統(tǒng)
PHP 幾乎可以使用現(xiàn)有的所有的數(shù)據(jù)庫,MySQL 與其他的大型數(shù)據(jù)庫例如 Oracle、DB2、SQL Server 等相比,自有它的不足之處,比如規(guī)模小、功能有限(MySQL Cluster 的功能和效率都相對比較差)等,但這也絲毫沒有減少它受歡迎的程度。 對于一般的個(gè)人使用者或者中小型企業(yè)來說,MySQL 提供的功能已經(jīng)綽綽有余,而且由于 MySQL 是開放源碼軟件,因此可以大大降低總體擁有成本。
目前 Internet 上流行的網(wǎng)站構(gòu)架方式分別是 LAMP(Linux + Apache + MySQL + PHP/Perl/Python)和 LNMP(Linux + Nginx + MySQL + PHP/Perl/Python),也就是使用 Linux 作為操作系統(tǒng),Apache 和 Nginx 作為 Web 服務(wù)器,MySQL 作為數(shù)據(jù)庫,PHP 作為服務(wù)器端腳本解釋器。由于這四個(gè)軟件都是免費(fèi)或開放源碼軟件,因此使用這種方式不用花一分錢(除開人工成本外)就可以建立起一個(gè)穩(wěn)定、免費(fèi)的網(wǎng)站系統(tǒng)。
PHP 和 MySQL 的合作方式
在同一個(gè) MySQL 數(shù)據(jù)庫服務(wù)器中可以創(chuàng)建多個(gè)數(shù)據(jù)庫,如果把每個(gè)數(shù)據(jù)庫看成是一個(gè)“倉庫”,那么網(wǎng)站中的內(nèi)容數(shù)據(jù)就存儲(chǔ)在這個(gè)倉庫中。而對數(shù)據(jù)庫中數(shù)據(jù)的存取及維護(hù)等,都是通過數(shù)據(jù)庫管理系統(tǒng)軟件進(jìn)行管理的。
同一個(gè)數(shù)據(jù)庫管理系統(tǒng)可以為不同的網(wǎng)站分別建立數(shù)據(jù)庫,但為了使網(wǎng)站中的數(shù)據(jù)便于維護(hù)、備份及移植,最好為一個(gè)網(wǎng)站創(chuàng)建一個(gè)數(shù)據(jù)庫(在大數(shù)據(jù)量時(shí)則采用分庫分表)。數(shù)據(jù)庫和數(shù)據(jù)庫管理系統(tǒng),以及 PHP 應(yīng)用程序之間的關(guān)系如下圖所示。
圖:PHP 程序與數(shù)據(jù)庫之間的關(guān)系
網(wǎng)站名稱:MySQL數(shù)據(jù)庫簡介
本文來源:http://m.fisionsoft.com.cn/article/djocdgc.html


咨詢
建站咨詢
