MySQL數(shù)據(jù)庫訪問妙招在Linux之下
本文主要介紹的是Linux操作系統(tǒng)應(yīng)用集成MySQL數(shù)據(jù)庫訪問技巧,我們大家都知道MySQL(和PHP搭配之最佳組合),是一種利用第三方的相關(guān)數(shù)據(jù)庫來開發(fā)電子貿(mào)易與一些其它復(fù)雜、動態(tài)網(wǎng)站的有效工具。
MySQL(和PHP搭配之最佳組合) 是一種快速、多線程和全功能的 SQL服務(wù)器。
除了描述MySQL(和PHP搭配之最佳組合)系統(tǒng)的基本體系結(jié)構(gòu)以外,本文還提供了以Tcl和C++編寫的簡單示例,幫助您開發(fā)支持數(shù)據(jù)庫的Web應(yīng)用。一個必須存儲或訪問大量信息的應(yīng)用程序可以從使用第三方數(shù)據(jù)庫產(chǎn)品中受益匪淺。在對信息的MySQL 數(shù)據(jù)庫訪問必須在程序的多個實例上進行時更是如此?;赪eb的應(yīng)用(包括電子貿(mào)易)就是它的良好例證。
為什么使用獨立數(shù)據(jù)庫?
Web服務(wù)器必須使其處理腳本有辦法來存儲有關(guān)供其以后MySQL 數(shù)據(jù)庫訪問的狀態(tài)信息。盡管有可能使用比較原始一些的方法--例如轉(zhuǎn)儲到文本文件或開發(fā)自制的迷你數(shù)據(jù)庫--但只有成熟的數(shù)據(jù)庫應(yīng)用才能提供更為復(fù)雜的Web應(yīng)用所需的所有服務(wù)。因為有一些免費獲得的軟件包可用于該目的,所以編寫定制的特定于應(yīng)用的數(shù)據(jù)庫引擎并無太大好處。
另外,使用第三方數(shù)據(jù)庫還使Web開發(fā)者不必投入到開發(fā)和維護數(shù)據(jù)庫的任務(wù)中。
MySQL(和PHP搭配之最佳組合)數(shù)據(jù)庫
通過使用腳本語言和編譯型系統(tǒng)語言(例如 C),將數(shù)據(jù)庫集成到Linux應(yīng)用就可能相當容易??擅赓M獲得的MySQL(和PHP搭配之最佳組合)(在GNU Public License下發(fā)行)數(shù)據(jù)庫提供了一系列復(fù)雜的SQL功能,并易于集成到應(yīng)用中。MySQL(和PHP搭配之最佳組合)是快速、多線程的,并支持ANSI和ODBC SQL標準。
加上第三方軟件,MySQL(和PHP搭配之最佳組合)就支持用于事務(wù)處理應(yīng)用的事務(wù)安全的表。
注:什么是事務(wù)處理?
事務(wù)是需要以原子方式執(zhí)行的對數(shù)據(jù)庫所做的一系列更改。它們要么必須全部執(zhí)行,要么一個都不執(zhí)行。 例如,在Web上銷售產(chǎn)品時所有必需的數(shù)據(jù)庫更改組成一個事務(wù)。數(shù)據(jù)庫需要同時減去客戶帳戶余額和產(chǎn)品庫存,否則失敗并且一個操作都不執(zhí)行。
無論服務(wù)器出于何種原因發(fā)生崩潰都不應(yīng)該引起事務(wù)被部分執(zhí)行。例如帳單多算、產(chǎn)品沒有交付,或者庫存不實等都有可能是部分完成的事務(wù)的結(jié)果。支持事務(wù)處理的數(shù)據(jù)庫可以將一組數(shù)據(jù)庫代碼封裝在一個事務(wù)中,在事務(wù)執(zhí)行期間的任何失敗會讓數(shù)據(jù)庫回滾到事務(wù)開始之前的狀態(tài)。
這是通過維護所有數(shù)據(jù)庫操作的日志,以及其原始狀態(tài)表的副本來實現(xiàn)的,在失敗后下一次重新啟動服務(wù)器時允許回滾操作。 這種時間和空間上的開銷是事務(wù)安全數(shù)據(jù)庫系統(tǒng)所必需的一種折衷。單一MySQL(和PHP搭配之最佳組合)服務(wù)器控制著一系列數(shù)據(jù)庫,它們都可以通過服務(wù)器以類似方式來MySQL 數(shù)據(jù)庫訪問。
每個數(shù)據(jù)庫實際上都是一組任意數(shù)量的表,概念與其它SQL數(shù)據(jù)庫的用戶類似。每個表都由帶類型的數(shù)據(jù)列組成。 數(shù)據(jù)可以是整數(shù)、實數(shù)值、字符串或其它類型,包括原始二進制流。 表中的每一行都是存儲在數(shù)據(jù)庫中的一個記錄。
MySQL(和PHP搭配之最佳組合)被設(shè)計和構(gòu)造成客戶機/服務(wù)器。 服務(wù)器MySQL(和PHP搭配之最佳組合)d可以在能從因特網(wǎng)MySQL 數(shù)據(jù)庫訪問到的任何機器上運行(最好與Web服務(wù)器在同一臺或最接近的一臺機器上,以確保合理的響應(yīng)時間)。MySQL(和PHP搭配之最佳組合)客戶機使用請求來與MySQL(和PHP搭配之最佳組合)服務(wù)器聯(lián)系,修改或查詢服務(wù)器所擁有的數(shù)據(jù)庫。
在支持數(shù)據(jù)庫的Web應(yīng)用程序中,數(shù)據(jù)庫客戶機是Web服務(wù)器或由Web服務(wù)器產(chǎn)生的CGI腳本。 這些客戶機可以用高級腳本語言或低級系統(tǒng)語言編寫,只要存在這種語言的數(shù)據(jù)庫API即可。在Linux中,大多數(shù)腳本語言是以C 實現(xiàn)的,因為存在MySQL(和PHP搭配之最佳組合) C API,所以要將MySQL(和PHP搭配之最佳組合)支持添加到任何現(xiàn)有的腳本語言或工具應(yīng)該很容易。絕大部分腳本語言已經(jīng)完成了這一步。
【編輯推薦】