最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

SQLite、BerkeleyDB、PostgreSQL、MySQL、Firebird、mSQL

來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 07:40:19
文檔

SQLite、BerkeleyDB、PostgreSQL、MySQL、Firebird、mSQL

SQLite、BerkeleyDB、PostgreSQL、MySQL、Firebird、mSQL:SQLite數(shù)據(jù)庫是中小站點(diǎn)CMS的最佳選擇 作者:孫毓波 (AKCMS 作者) SQLite 是一個(gè)類似Access的輕量級數(shù)據(jù)庫系統(tǒng),但是更 SQLite數(shù)據(jù)庫是中小站點(diǎn)CMS的最佳選擇 作者:孫毓波 (AKCMS 作者) SQLite 是一個(gè)類似Access的輕量級數(shù)據(jù)庫系統(tǒng),但是更小
推薦度:
導(dǎo)讀SQLite、BerkeleyDB、PostgreSQL、MySQL、Firebird、mSQL:SQLite數(shù)據(jù)庫是中小站點(diǎn)CMS的最佳選擇 作者:孫毓波 (AKCMS 作者) SQLite 是一個(gè)類似Access的輕量級數(shù)據(jù)庫系統(tǒng),但是更 SQLite數(shù)據(jù)庫是中小站點(diǎn)CMS的最佳選擇 作者:孫毓波 (AKCMS 作者) SQLite 是一個(gè)類似Access的輕量級數(shù)據(jù)庫系統(tǒng),但是更小

SQLite數(shù)據(jù)庫是中小站點(diǎn)CMS的最佳選擇 作者:孫毓波 (AKCMS 作者) SQLite 是一個(gè)類似Access的輕量級數(shù)據(jù)庫系統(tǒng),但是更

SQLite數(shù)據(jù)庫是中小站點(diǎn)CMS的最佳選擇

作者:孫毓波 (AKCMS 作者)

SQLite 是一個(gè)類似Access的輕量級數(shù)據(jù)庫系統(tǒng),但是更小、更快、容量更大,并發(fā)更高。為什么說 SQLite 最適合做 CMS (內(nèi)容管理系統(tǒng))呢?并不是說其他數(shù)據(jù)庫不好, Oracle、MySQL、SQLServer 也都是非常優(yōu)秀的 DBS,只不過他們設(shè)計(jì)目標(biāo)不同,特性不同,所以只有更適用某個(gè)應(yīng)用場景,沒有絕對的好壞之分。

我歸納的中小型站點(diǎn)的CMS的特點(diǎn)如下:

  • 1、數(shù)據(jù)量不超過10萬
  • 2、日頁面訪問量不超過10萬
  • 3、 一部分網(wǎng)站全部生成靜態(tài)頁面,一部分網(wǎng)站實(shí)時(shí)查詢數(shù)據(jù)庫動態(tài)訪問
  • 4、 站長不懂技術(shù),不懂得復(fù)雜的數(shù)據(jù)庫維護(hù),只會用 FTP 管理網(wǎng)站
  • 5 、個(gè)人站點(diǎn)基本上是一個(gè)人管理,一般情況下只有一個(gè)人在訪問后臺,沒有并發(fā)
  • 6、 對數(shù)據(jù)庫來說是讀多寫少,只有在站長訪問后臺的時(shí)候才會寫入
  • 7、 多運(yùn)行于虛擬主機(jī),大部分PHP主機(jī)均同時(shí)支持MySQL,小部分PHP主機(jī)需要單獨(dú)購買MySQL,PHP+MySQL的主機(jī)價(jià)格較PHP主機(jī)價(jià)格高。 (以萬網(wǎng)為例:最便宜的PHP空間780元,最便宜的PHP+MySQL的PHP空間1150元)
  • 8、 多數(shù)中小站點(diǎn)的HTTP服務(wù)與MySQL部署在同一服務(wù)器上
  • SQLite 的優(yōu)點(diǎn)在中小網(wǎng)站CMS應(yīng)用場景下表現(xiàn)突出:

  • 1、與MySQL相比,它更徹底的免費(fèi),并且沒有任何使用上的限制
  • 2、非常小巧,PHP5以上版本中無需任何配置即可支持SQLite
  • 3、無需單獨(dú)購買數(shù)據(jù)庫服務(wù),無服務(wù)器進(jìn)程,配置成本為零
  • 4、整個(gè)數(shù)據(jù)庫存儲在一個(gè)單個(gè)的文件中,數(shù)據(jù)導(dǎo)入導(dǎo)出備份恢復(fù)都是復(fù)制文件,維護(hù)難度為零
  • 5、讀速度快,在數(shù)據(jù)量不是很大的情況下速度較快,更重要的是:省掉了一次數(shù)據(jù)庫遠(yuǎn)程鏈接沒有復(fù)雜的權(quán)限驗(yàn)證,打開就能操作
  • SQLite的缺點(diǎn)在中小網(wǎng)站 CMS 應(yīng)用場景下被規(guī)避:

  • 1、并發(fā)低 動態(tài)訪問時(shí)當(dāng)訪問量不超過10萬PV的時(shí)候,SQLite 超過 Access 的并發(fā)能力已經(jīng)綽綽有余;生成靜態(tài)頁后更無需考慮數(shù)據(jù)庫的并發(fā)問題
  • 2、在大數(shù)據(jù)量的情況下表現(xiàn)較差 但是中小站點(diǎn)一般情況下數(shù)據(jù)量不超過10萬,而SQlite 在 100 萬數(shù)據(jù)量之下表現(xiàn)還不錯(cuò),因?yàn)槭〉袅藢?shù)據(jù)庫服務(wù)器的遠(yuǎn)程連接甚至?xí)?
  • 3、寫入較慢 默認(rèn)配置下的 SQlite 的寫入速度比MySQL慢了很多,但是 CMS 應(yīng)用場景的寫入操作較少。在插入新文章的時(shí)候基本感受不到慢。集中的寫數(shù)據(jù)庫操作只有在安裝的時(shí)候會出現(xiàn),不過只出現(xiàn)一次,可以忽略
  • 4、為已有的表加索引較慢 但是在中小站點(diǎn)CMS中不會有這樣的需求,可以忽略
  • 5、無法將 MySQL 部署到與前端機(jī)不同的服務(wù)器上 ,但是中小站點(diǎn)也沒有分開部署的需求
  • 綜上所述:在中小站點(diǎn) CMS 的應(yīng)用場景下 SQLite 能最大限度的降低建站成本,降低維護(hù)難度,又很好得規(guī)避了自身的缺點(diǎn)。所以我認(rèn)為未來支持 SQLite 的 CMS 系統(tǒng)一定會大行其道。

    =============
    嵌入式數(shù)據(jù)庫系統(tǒng)Berkeley DB
    施聰 (javer@163.com), 高級程序員、網(wǎng)絡(luò)設(shè)計(jì)師

    通 常,我們在設(shè)計(jì)UNIX/LINUX平臺下的應(yīng)用軟件時(shí),如果數(shù)據(jù)種類繁多,數(shù)據(jù)與數(shù)據(jù)之間關(guān)系比較復(fù)雜,就會選用一些大型的企業(yè)級數(shù)據(jù)庫系統(tǒng),如 DB2,ORACLE、SYBASE等,如果軟件規(guī)模不大,就傾向選用如MYSQL、POSTGRESQL等中小型數(shù)據(jù)庫。例如使用PHP/PERL + MYSQL/POSTGRESQL設(shè)計(jì)網(wǎng)站基本上是一個(gè)很常規(guī)的做法。但是,當(dāng)應(yīng)用軟件管理的數(shù)據(jù)類型較少(特別注意:這并不是說需要管理的數(shù)據(jù)量?。?數(shù)據(jù)管理本身不復(fù)雜,且對數(shù)據(jù)操作要求高效率,則由大名鼎鼎的Berkeley(美國加州大學(xué)伯克利分校)開發(fā)的 Berkeley DB可能是一個(gè)很明智的選擇。

    DB 是一個(gè)具有工業(yè)強(qiáng)度的嵌入式數(shù)據(jù)庫系統(tǒng),數(shù)據(jù)處理的效率很高。DB功能的穩(wěn)定性歷經(jīng)時(shí)間的考驗(yàn),在大量應(yīng)用程序中使用便是明證??梢韵胍姡谕却a質(zhì)量 的條件下,軟件的BUG數(shù)和代碼的長度是成正比的,相對幾十兆、幾百兆大型數(shù)據(jù)庫軟件,DB的只有不到500K的大??!

    從實(shí)現(xiàn)功能上 看,DB是輕量級數(shù)據(jù)庫系統(tǒng),或可稱為"極" 輕量級數(shù)據(jù)庫系統(tǒng)。但是,我認(rèn)為不能因此而心存輕視之意,所謂"尺有所短,寸有所長",以絕對角度比較工具之間的好壞是沒有什么意義的,關(guān)鍵在于對工具的 選擇和運(yùn)用(似乎可以參考一下極限編程的思想)。也許,正確的"表達(dá)范式"應(yīng)該是:在當(dāng)前應(yīng)用背景下,選擇這種工具是最合適的。
    -----------------------
    作者:肖文鵬 發(fā)文時(shí)間:2004.04.09
    像 MySQL這類基于C/S結(jié)構(gòu)的關(guān)系型數(shù)據(jù)庫系統(tǒng)雖然代表著目前數(shù)據(jù)庫應(yīng)用的主流,但卻并不能滿足所有應(yīng)用場合的需要。有時(shí)我們需要的可能只是一個(gè)簡單 的基于磁盤文件的數(shù)據(jù)庫系統(tǒng)。這樣不僅可以避免安裝龐大的數(shù)據(jù)庫服務(wù)器,而且還可以簡化數(shù)據(jù)庫應(yīng)用程序的設(shè)計(jì)。Berkeley DB正是基于這樣的思想提出來的。

    Berkeley DB簡介

    Berkeley DB是一個(gè)開放源代碼的內(nèi)嵌式數(shù)據(jù)庫管理系統(tǒng),能夠?yàn)閼?yīng)用程序提供高性能的數(shù)據(jù)管理服務(wù)。應(yīng)用它程序員只需要調(diào)用一些簡單的API就可以完成對數(shù)據(jù)的訪問 和管理。與常用的數(shù)據(jù)庫管理系統(tǒng)(如MySQL和Oracle等)有所不同,在Berkeley DB中并沒有數(shù)據(jù)庫服務(wù)器的概念。應(yīng)用程序不需要事先同數(shù)據(jù)庫服務(wù)建立起網(wǎng)絡(luò)連接,而是通過內(nèi)嵌在程序中的Berkeley DB函數(shù)庫來完成對數(shù)據(jù)的保存、查詢、修改和刪除等操作。

    Berkeley DB為許多編程語言提供了實(shí)用的API接口,包括C、C++、Java、Perl、Tcl、Python和PHP等。所有同數(shù)據(jù)庫相關(guān)的操作都由 Berkeley DB函數(shù)庫負(fù)責(zé)統(tǒng)一完成。這樣無論是系統(tǒng)中的多個(gè)進(jìn)程,或者是相同進(jìn)程中的多個(gè)線程,都可以在同一時(shí)間調(diào)用訪問數(shù)據(jù)庫的函數(shù)。而底層的數(shù)據(jù)加鎖、事務(wù)日志 和存儲管理等都在Berkeley DB函數(shù)庫中實(shí)現(xiàn)。它們對應(yīng)用程序來講是完全透明的。俗話說:“麻雀雖小五臟俱全。”Berkeley DB函數(shù)庫本身雖然只有300KB左右,但卻能夠用來管理多達(dá)256TB的數(shù)據(jù),并且在許多方面的性能還能夠同商業(yè)級的數(shù)據(jù)庫系統(tǒng)相抗衡。就拿對數(shù)據(jù)的并 發(fā)操作來說,Berkeley DB能夠很輕松地應(yīng)付幾千個(gè)用戶同時(shí)訪問同一個(gè)數(shù)據(jù)庫的情況。此外,如果想在資源受限的嵌入式系統(tǒng)上進(jìn)行數(shù)據(jù)庫管理,Berkeley DB可能就是惟一正確的選擇了。

    Berkeley DB作為一種嵌入式數(shù)據(jù)庫系統(tǒng)在許多方面有著獨(dú)特的優(yōu)勢。首先,由于其應(yīng)用程序和數(shù)據(jù)庫管理系統(tǒng)運(yùn)行在相同的進(jìn)程空間當(dāng)中,進(jìn)行數(shù)據(jù)操作時(shí)可以避免繁瑣的 進(jìn)程間通信,因此耗費(fèi)在通信上的開銷自然也就降低到了極低程度。其次,Berkeley DB使用簡單的函數(shù)調(diào)用接口來完成所有的數(shù)據(jù)庫操作,而不是在數(shù)據(jù)庫系統(tǒng)中經(jīng)常用到的SQL語言。這樣就避免了對結(jié)構(gòu)化查詢語言進(jìn)行解析和處理所需的開 銷。

    from: http://tech.ccidnet.com/art/1060/20040409/101733_1.html

    ==========================
    主流開源數(shù)據(jù)庫的技術(shù)特點(diǎn)點(diǎn)評

    隨著開放源代碼軟件的使用越來越廣泛,像Linux操作系統(tǒng)一樣,開放源代碼數(shù)據(jù)庫的出現(xiàn)也有其必然性。在當(dāng)Oracle、IBM、Microsoft、 Sybase 等幾大數(shù)據(jù)庫廠商在數(shù)據(jù)庫領(lǐng)域處于壟斷地位的時(shí)候,出現(xiàn)了以MySQL、PostgreSQL為代表的開放源代碼的數(shù)據(jù)庫系統(tǒng),推動了開源軟件事業(yè)的發(fā) 展。開源數(shù)據(jù)庫系統(tǒng)并不是一個(gè)新事物,如Postgres(PostgreSQL的前身)已經(jīng)有20年的發(fā)展歷史了,而著名的MySQL今年4月剛剛度過 了其10周年紀(jì)念活動。

    1、MYSQL

    MysQL是瑞典的T.c.X公司負(fù)責(zé)開發(fā)和維護(hù)的,它是一個(gè)真正的多用戶、多線程SQL數(shù)據(jù)庫服務(wù)器。MysQL是以一個(gè)客戶機(jī)/服務(wù)器結(jié)構(gòu)實(shí)現(xiàn)其功能 的,它由一個(gè)服務(wù)器守護(hù)程序mysqld和很多不同的客戶程序和庫組成。SQL是一種標(biāo)準(zhǔn)化的語言,它使得存儲、更新和存取信息更容易。MySQL主要特 點(diǎn)是快速、健壯和易用。MySQL的官方發(fā)音是“My Ess Que Ell”(不是MY-SEQUEL)。目前MySQL的最新版本是5.0,MySQL的網(wǎng)址是:http://www.mysql.com,MySQL的 標(biāo)志是一個(gè)小海豚。見圖-1。

    圖-1 Mysql 標(biāo)志

    MySQL的技術(shù)特點(diǎn):

    1. 它使用的核心線程是完全多線程,支持多處理器。

    2. 有多種列類型:1、2、3、4、和8字節(jié)長度自有符號/無符號整數(shù)、FLOAT、DOUBLE、CHAR、VARCHAR、TEXT、BLOB、DATE、TIME、DATETIME、 TIMESTAMP、YEAR、和ENUM類型。

    3. 它通過一個(gè)高度優(yōu)化的類庫實(shí)現(xiàn)SQL函數(shù)庫并像他們能達(dá)到的一樣快速,通常在查詢初始化后不該有任何內(nèi)存分配。沒有內(nèi)存漏洞。

    4. 全面支持SQL的GROUP BY和ORDER BY子句,支持聚合函數(shù)(COUNT()、COUNT(DISTINCT)、AVG()、STD()、SUM()、MAX()和MIN())。你可以在同一查詢中混來自不同數(shù)據(jù)庫的表。

    5. 支持ANSI SQL的LEFT 0UTER JOIN和ODBC。

    6. 所有列都有缺省值。你可以用INSERT插入一個(gè)表列的子集,那些沒用明確給定值的列設(shè)置為他們的決省值。

    7. MySQL可以工作在不同的平臺上。支持C、C++、Java、Perl、PHP、Python和TCL API。

    MaxDB是2003年SAP公司和MySQL AB公司合作之后SAP DB新的名稱。MaxDB是一款重量級的、獲得SAP R/3認(rèn)證,適宜于聯(lián)機(jī)事務(wù)處理和聯(lián)機(jī)分析處理等多種業(yè)務(wù)類型的高可用性、高可靠性和極具伸縮性的數(shù)據(jù)庫,支持大容量的用戶和并發(fā)業(yè)務(wù)操作,采用多線程多 進(jìn)程的服務(wù)器設(shè)計(jì),支持多處理器的應(yīng)用,并通過集群和熱部署提供高可靠性,支持TB級的海量數(shù)據(jù),支持企業(yè)級的數(shù)據(jù)同步和復(fù)制等復(fù)雜應(yīng)用。

    2. PostgreSQL

    PostgreSQL是一種運(yùn)行在Unix和Linux操作系統(tǒng)(在NT平臺借助Cygnus也可以運(yùn)行)平臺上的免費(fèi)的開放源碼的關(guān)系數(shù)據(jù)庫。最早是由 美國加州大學(xué)伯克利分校開發(fā)的,開始只是作為一個(gè)演示系統(tǒng)發(fā)表,但是隨著時(shí)間的推移,逐步分發(fā),得到很多實(shí)際的應(yīng)用,才逐步流行起來。PostgreSQ 的網(wǎng)址是http://www.postgresql.org/,最新版本是2005年10月4日發(fā)布的8.0.4。PostgreSQL的官方發(fā)音 是:Post-gres-Q-L。 PostgreSQ的標(biāo)志是一個(gè)大象,見圖-2。

     圖2 PostgreSQL 標(biāo)志

    PostgreSQL的技術(shù)特點(diǎn):

    1. 支持SQL。作為關(guān)系數(shù)據(jù)庫,它支持SQL89標(biāo)準(zhǔn)也支持部分SQL92大部分功能。

    2. 有豐富的數(shù)據(jù)類型。許多數(shù)據(jù)類型是一些商業(yè)數(shù)據(jù)庫都沒有提供的。

    3. 面向?qū)ο?。它包含了一些面向?qū)ο蟮募夹g(shù),如繼承和類。

    4. 支持大數(shù)據(jù)庫,它不同于一般的桌面數(shù)據(jù)庫,能夠支持幾乎不受限制大小的數(shù)據(jù)庫,而且性能穩(wěn)定。

    5. 方便集成web,提供一些接口方便 PHP,Perl等語言操作數(shù)據(jù)庫。

    6. 事務(wù)處理。相對一些其他免費(fèi)數(shù)據(jù)庫如MySQL,他提供了事務(wù)處理,可以滿足一些商業(yè)領(lǐng)域的數(shù)據(jù)需要。

    7. PostgreSQL運(yùn)行速度明顯低于MySQL。因?yàn)镸ySQL使用了線程,而PostgreSQL使用的是進(jìn)程。在不同線程之間的環(huán)境轉(zhuǎn)換和訪問公用的存儲區(qū)域顯然要比在不同的進(jìn)程之間要快得多。

    3. Firebird

    2000年7月,Borland(即現(xiàn)在的Inprise)公司公布了其數(shù)據(jù)庫產(chǎn)品Interbase的源代碼。Firebird數(shù)據(jù)庫就是從該數(shù)據(jù)庫中 派生出來的。當(dāng)時(shí),Interbase是與客戶/服務(wù)器版本的Delphi產(chǎn)品捆綁在一些銷售的?,F(xiàn)在,Interbase已經(jīng)變成了一只開放源碼中的“ 火鳥”。 Firebird 網(wǎng)址是http://firebird.sourceforge.net/ ,最新版本是2005年8月5日發(fā)布的1.5.3。的標(biāo)志是一只“火鳥”,見圖-3。

     圖-3 Firebird 標(biāo)志

    Firebird的技術(shù)特點(diǎn)

    Firebird相對MySQL和PostgreSQL來說比較小,其RPM版本只有3.0MB。這也使其可以稱得上是理想的“嵌入式數(shù)據(jù)庫”,可用于與 其它應(yīng)用程序服務(wù)器和應(yīng)用程序捆綁。Firebird具有大部分成熟數(shù)據(jù)庫所具有的功能,比如支持存儲過程、SQL兼容等。如果用戶有使用DB2或 PostgreSQL的經(jīng)驗(yàn),就會發(fā)現(xiàn)Firebird與它們的語法非常相似,數(shù)據(jù)類型和數(shù)據(jù)處理方式也很類似。 Firebird的設(shè)計(jì)思想是小型、快速和最小化的管理。這對于需要一個(gè)數(shù)據(jù)庫用于存儲數(shù)據(jù),但又不想花太多時(shí)間來調(diào)整數(shù)據(jù)性能的開發(fā)人員很適用。實(shí)際上 在很多情況下,我們并不需要存儲程序或復(fù)雜的表之間的關(guān)聯(lián)。這時(shí)會發(fā)現(xiàn)Firebird在大小和功能之間找到了一個(gè)理想的平衡點(diǎn)。

    現(xiàn)在有兩個(gè)版本的Firebird服務(wù)器軟件可供下載,分別是Firebird Super Server和Firebird Classic Server。簡單來說,二者的區(qū)別在于設(shè)計(jì)的方法不同。Super Server使用線程同時(shí)為多個(gè)客戶連接提供服務(wù),而Classic Server使用的則是Interbase的方法,采用為每個(gè)連接提供一個(gè)獨(dú)立服務(wù)器進(jìn)程的方式。如果想對二者的區(qū)別有更多的了解,可查看 http://www.ibphoenix.com/main.nfs?a=ibphoenix& page=ibp_ss_vs_classic。對于“嵌入式數(shù)據(jù)庫”的用戶,這兩個(gè)版本之間沒有太大的區(qū)別。從理論上講,如果應(yīng)用程序的用戶很多,那么 Super Server將是一個(gè)較好的選擇。

    4. mSQL

    mSQL(mini SQL)是一個(gè)單用戶數(shù)據(jù)庫管理系統(tǒng),個(gè)人使用免費(fèi),商業(yè)使用收費(fèi)。由于它的短小精悍,使其開發(fā)的應(yīng)用系統(tǒng)特別受到互聯(lián)網(wǎng)用戶青睞。mSQL(mini SQL)是一種小型的關(guān)系數(shù)據(jù)庫,性能不是太好,對SQL語言的支持也不夠完全,但在一些網(wǎng)絡(luò)數(shù)據(jù)庫應(yīng)用中是足夠了。由于mSQL較簡單,在運(yùn)行簡單的 SQL語句時(shí)速度比MySQL略快,而MySQL在線程和索引上下了功夫,運(yùn)行復(fù)雜的SQL語句時(shí)比mSQL,PostgreSQL等都要快一些。 MSQL的網(wǎng)址是:http://www.hughes.com.au ,最新版本是2005年5月8日發(fā)布的3.7。MSQL的標(biāo)志是一個(gè)鹿。見圖-2。

    圖4 mSQL 標(biāo)志

    mSQL的技術(shù)特點(diǎn):

    安全性方面,mSQL通過ACL文件設(shè)定各主機(jī)上各用戶的訪問權(quán)限,缺省是 全部可讀/寫。mSQL缺乏 ANSI SQL 的大多數(shù)特征,它僅僅實(shí)現(xiàn)了一個(gè)最最少的API,沒有事務(wù)和參考完整性。mSQL與Lite(一種類似C的腳本語言,與分發(fā)一起發(fā)行)緊密結(jié)合,可以得到 一個(gè)稱為 W3-mSQL的一個(gè)網(wǎng)站集成包,它是JDBC、ODBC、Perl和PHP API。

    嵌入式數(shù)據(jù)庫

    嵌入式數(shù)據(jù)庫的名稱來自其獨(dú)特的運(yùn)行模式。這種數(shù)據(jù)庫嵌入到了應(yīng)用程序進(jìn)程中,消除了與客戶機(jī)服務(wù)器配置相關(guān)的開銷。嵌入式數(shù)據(jù)庫實(shí)際上是輕量級的,在運(yùn) 行時(shí),它們需要較少的內(nèi)存。它們是使用精簡代碼編寫的,對于嵌入式設(shè)備,其速度更快,效果更理想。嵌入式運(yùn)行模式允許嵌入式數(shù)據(jù)庫通過 SQL 來輕松管理應(yīng)用程序數(shù)據(jù),而不依靠原始的文本文件。嵌入式數(shù)據(jù)庫還提供零配置運(yùn)行模式,這樣可以啟用其中一個(gè)并運(yùn)行一個(gè)快照。

    5. Berkeley DB

    像MySQL這類基于C/S結(jié)構(gòu)的關(guān)系型數(shù)據(jù)庫系統(tǒng)雖然代表著目前數(shù)據(jù)庫應(yīng)用的主流,但卻并不能滿足所有應(yīng)用場合的需要。有時(shí)我們需要的可能只是一個(gè)簡單 的基于磁盤文件的數(shù)據(jù)庫系統(tǒng)。這樣不僅可以避免安裝龐大的數(shù)據(jù)庫服務(wù)器,而且還可以簡化數(shù)據(jù)庫應(yīng)用程序的設(shè)計(jì)。Berkeley DB正是基于這樣的思想提出來的。官方網(wǎng)址是:http://www.sleepycat.com/ ,最新版本是2005年8月5日發(fā)布的4.3。的標(biāo)志是一只“貓”,見圖-4。

    圖5 Berkeley DB 標(biāo)志

    Berkeley DB的技術(shù)特點(diǎn):

    Berkeley DB是一個(gè)開放源代碼的內(nèi)嵌式數(shù)據(jù)庫管理系統(tǒng),能夠?yàn)閼?yīng)用程序提供高性能的數(shù)據(jù)管理服務(wù)。應(yīng)用它程序員只需要調(diào)用一些簡單的API就可以完成對數(shù)據(jù)的訪問 和管理。與常用的數(shù)據(jù)庫管理系統(tǒng)(如MySQL和Oracle等)有所不同,在Berkeley DB中并沒有數(shù)據(jù)庫服務(wù)器的概念。應(yīng)用程序不需要事先同數(shù)據(jù)庫服務(wù)建立起網(wǎng)絡(luò)連接,而是通過內(nèi)嵌在程序中的Berkeley DB函數(shù)庫來完成對數(shù)據(jù)的保存、查詢、修改和刪除等操作。

    Berkeley DB為許多編程語言提供了實(shí)用的API接口,包括C、C++、Java、Perl、Tcl、Python和PHP等。所有同數(shù)據(jù)庫相關(guān)的操作都由 Berkeley DB函數(shù)庫負(fù)責(zé)統(tǒng)一完成。這樣無論是系統(tǒng)中的多個(gè)進(jìn)程,或者是相同進(jìn)程中的多個(gè)線程,都可以在同一時(shí)間調(diào)用訪問數(shù)據(jù)庫的函數(shù)。而底層的數(shù)據(jù)加鎖、事務(wù)日志 和存儲管理等都在Berkeley DB函數(shù)庫中實(shí)現(xiàn)。它們對應(yīng)用程序來講是完全透明的。俗話說:“麻雀雖小五臟俱全。”Berkeley DB函數(shù)庫本身雖然只有300KB左右,但卻能夠用來管理多達(dá)256TB的數(shù)據(jù),并且在許多方面的性能還能夠同商業(yè)級的數(shù)據(jù)庫系統(tǒng)相抗衡。就拿對數(shù)據(jù)的并 發(fā)操作來說,Berkeley DB能夠很輕松地應(yīng)付幾千個(gè)用戶同時(shí)訪問同一個(gè)數(shù)據(jù)庫的情況。此外,如果想在資源受限的嵌入式系統(tǒng)上進(jìn)行數(shù)據(jù)庫管理,Berkeley DB可能就是惟一正確的選擇了。

    Berkeley DB作為一種嵌入式數(shù)據(jù)庫系統(tǒng)在許多方面有著獨(dú)特的優(yōu)勢。首先,由于其應(yīng)用程序和數(shù)據(jù)庫管理系統(tǒng)運(yùn)行在相同的進(jìn)程空間當(dāng)中,進(jìn)行數(shù)據(jù)操作時(shí)可以避免繁瑣的 進(jìn)程間通信,因此耗費(fèi)在通信上的開銷自然也就降低到了極低程度。其次,Berkeley DB使用簡單的函數(shù)調(diào)用接口來完成所有的數(shù)據(jù)庫操作,而不是在數(shù)據(jù)庫系統(tǒng)中經(jīng)常用到的SQL語言。這樣就避免了對結(jié)構(gòu)化查詢語言進(jìn)行解析和處理所需的開 銷。

    6. SQLite

    SQLite 是 D. Richard Hipp 用 C 語言編寫的開源嵌入式數(shù)據(jù)庫引擎。它是完全獨(dú)立的,不具有外部依賴性。它是作為 PHP V4.3 中的一個(gè)選項(xiàng)引入的,構(gòu)建在 PHP V5 中。SQLite 支持多數(shù) SQL92 標(biāo)準(zhǔn),可以在所有主要的操作系統(tǒng)上運(yùn)行,并且支持大多數(shù)計(jì)算機(jī)語言。SQLite 還非常健壯。其創(chuàng)建者保守地估計(jì) SQLite 可以處理每天負(fù)擔(dān)多達(dá) 100,00 次點(diǎn)擊率的 Web 站點(diǎn),并且 SQLite 有時(shí)候可以處理 10 倍于上述數(shù)字的負(fù)載。SQLite 的網(wǎng)址是,最新版本是2005年9月24日發(fā)布的3.2.7 。SQLite的標(biāo)志是一只羽毛,見圖-5。

    圖6 SQLite標(biāo)志

    SQLite的技術(shù)特點(diǎn):

    SQLite 對 SQL92 標(biāo)準(zhǔn)的支持包括索引、限制、觸發(fā)和查看。SQLite 不支持外鍵限制,但支持原子的、一致的、獨(dú)立和持久 (ACID) 的事務(wù)(后面會提供有關(guān) ACID 的更多信息)。這意味著事務(wù)是原子的,因?yàn)樗鼈円赐耆珗?zhí)行,要么根本不執(zhí)行。事務(wù)也是一致的,因?yàn)樵诓灰恢碌臓顟B(tài)中,該數(shù)據(jù)庫從未被保留。事務(wù)還是獨(dú)立 的,所以,如果在同一時(shí)間在同一數(shù)據(jù)庫上有兩個(gè)執(zhí)行操作的事務(wù),那么這兩個(gè)事務(wù)是互不干擾的。而且事務(wù)是持久性的,所以,該數(shù)據(jù)庫能夠在崩潰和斷電時(shí)幸免 于難,不會丟失數(shù)據(jù)或損壞。SQLite 通過數(shù)據(jù)庫級上的獨(dú)占性和共享鎖定來實(shí)現(xiàn)獨(dú)立事務(wù)處理。這意味著當(dāng)多個(gè)進(jìn)程和線程可以在同一時(shí)間從同一數(shù)據(jù)庫讀取數(shù)據(jù),但只有一個(gè)可以寫入數(shù)據(jù)。在某個(gè)進(jìn) 程或線程向數(shù)據(jù)庫執(zhí)行寫入操作之前,必須獲得獨(dú)占鎖定。在發(fā)出獨(dú)占鎖定后,其他的讀或?qū)懖僮鲗⒉粫侔l(fā)生。

    總結(jié):目前的開源數(shù)據(jù)庫還不能在功能和處理能力方面追上商業(yè)級產(chǎn)品,但價(jià)格的侵蝕力無法回避,開源數(shù)據(jù)庫迅速增長的市場份額甚至讓數(shù)據(jù)庫領(lǐng)域的三巨 頭,Oracle、IBM、微軟都感到忐忑不安。開源數(shù)據(jù)庫的用戶在增長,并正在被越來越多的用戶所采用。在嵌入式數(shù)據(jù)庫領(lǐng)域,開源數(shù)據(jù)庫優(yōu)勢更加明顯。 分析師稱開放源碼正在迅速被數(shù)據(jù)庫技術(shù)所采用。開放源碼“從2000年被懷疑到2005年已經(jīng)發(fā)展成為全球的主流技術(shù)”。低成本甚至免費(fèi)的開源數(shù)據(jù)庫時(shí)代 即將來臨。

    =============
    將你的網(wǎng)站從MySQL改為PostgreSQL

    原著:Nathan Matias 翻譯:處處
    我的站點(diǎn)最初是采用PHP驅(qū)動,由MySQL數(shù)據(jù)庫支持的方案,這在當(dāng)時(shí)是一個(gè)明智的方案。在2001年夏天,我將我的數(shù)據(jù)庫換成了PostgreSQL(有時(shí)也簡稱為Postgres)。
    這個(gè)教程分為兩部分,第一部分講述了我進(jìn)行這種轉(zhuǎn)換的動機(jī),并一步步地解釋了如何將已存在有MySQL的數(shù)據(jù)轉(zhuǎn)換到Postgres中。第二部分將會解釋如何根據(jù)新的數(shù)據(jù)庫系統(tǒng)對PHP進(jìn)行相應(yīng)的調(diào)整。
    轉(zhuǎn)換的動機(jī)
    我第一次了解Postgres是在PHPBuilder網(wǎng)站的一篇文章中。這篇文章將Postgres和MySQL進(jìn)行了比較,當(dāng)時(shí)我正在使用 MySQL。但是,當(dāng)我閱讀了這篇文章后,我對Postgres著了迷 -- 但是當(dāng)時(shí)我還沒有想到對我的網(wǎng)站進(jìn)行重新的設(shè)計(jì)。
    我繼續(xù)使用MySQL,因?yàn)槲业闹鳈C(jī)提供商只能提供MySQL的支持,這是我所無法改變的。直到有一天,主機(jī)提供商的主機(jī)崩潰了。我立即換了一個(gè)主機(jī)提供 商,與原來的那個(gè)相比,新的主機(jī)提供商有很多不同,他們在安全性和穩(wěn)定性方面對我作出了更多的承諾。新公司試圖說服我使用Postgres,因?yàn)?Postgres要比MySQL來得更穩(wěn)定,但是我當(dāng)時(shí)沒有接受這個(gè)建議,因?yàn)槲业木W(wǎng)站已經(jīng)根據(jù)MySQL完成了全部的編碼工作。他們只好專門為我的站點(diǎn) 安裝了MySQL。于是問題開始了。
    我的第一個(gè)工作是將舊服務(wù)器上的MySQL的數(shù)據(jù)拷貝到新的主機(jī)上。首先,我將已有的數(shù)據(jù)dump到一個(gè)SQL文件中,然后在新的主機(jī)上導(dǎo)入這個(gè)SQL文 件。在處理這個(gè)數(shù)千行的文件時(shí),MySQL迅速地崩潰了。重啟MySQL后,其中大概只有一半數(shù)據(jù)成功地導(dǎo)入了,而且MySQL只能間歇性地工作。最后, 他們不得不刪除了已經(jīng)導(dǎo)入的信息讓我再試一次。MySQL再次崩潰。這種情況重復(fù)了好幾次,直到最終我決定將我的SQL文件分割成幾塊。我不得不又試了幾 次,最后終于將絕大多數(shù)的數(shù)據(jù)都成功地導(dǎo)入到新的MySQL服務(wù)器中。一切都好了,我總算松了一口氣。
    在下面的幾個(gè)月中,MySQL幾乎每兩周都要崩潰一次,其中最慘痛的一次是在2001年6月底。這一次,存儲在MySQL中的數(shù)據(jù)完全被毀壞了。我有一個(gè) SQL的備份文件,但是因?yàn)樯洗蜗騇ySQL中導(dǎo)入大量數(shù)據(jù)的痛苦的經(jīng)歷,這一次我再也不想通過這個(gè)備份恢復(fù)數(shù)據(jù)了。這時(shí),公司再次建議我對我的網(wǎng)站進(jìn)行 轉(zhuǎn)向,使用Postgres。由于MySQL的失敗,最終我接受了這個(gè)建議。
    將數(shù)據(jù)從MySQL轉(zhuǎn)移到Postgres中
    將數(shù)據(jù)從MySQL轉(zhuǎn)移到Postgres是一個(gè)不大的挑戰(zhàn),因?yàn)镻ostgres比MySQL支持了更多的SQL的標(biāo)準(zhǔn)格式,在POstgres中直接使用SQL的dump結(jié)果是不可能的。但是,SQL語法相當(dāng)相似,因此對于我來說,這并沒有花費(fèi)太多的時(shí)間。

    對MySQL的Dump結(jié)果進(jìn)行轉(zhuǎn)換
    首先,要求你的主機(jī)提供商為你的帳號建立一個(gè)數(shù)據(jù)庫。和MySQL數(shù)據(jù)庫一樣,Postgres的數(shù)據(jù)庫也由一系列包含實(shí)際數(shù)據(jù)的數(shù)據(jù)表組成。然后,使用mysqldump命令為你的MySQL數(shù)據(jù)庫做一個(gè)dump文件。
    mysqldump -u username -p databasename > sqldump.txt
    使用FTP將整個(gè)dump文件下載下來?,F(xiàn)在在你的計(jì)算機(jī)上有了這個(gè)SQL文件,你可以將其轉(zhuǎn)換成Postgres可以導(dǎo)入的文件。
    首先,從dump文件中剪切所有的MySQL的CREATE TABLE查詢,并將其粘貼到一個(gè)單獨(dú)的文本文件中。下一步是使用Postgres可以理解的語言重新對數(shù)據(jù)表進(jìn)行定義。
    Postgres建立表的SQL和MySQL非常類似,但不完全一樣。下面是一個(gè)例子:
    CREATE TABLE practicetable
    {
    someID SERIAL,
    time TIMESTAMP DEFAULT now(),
    name VARCHAR(50),
    address VARCHAR(50),
    city VARCHAR(50),
    state VARCHAR(2),
    country VARCHAR(3) DEFAULT 'USA',
    postlcode VARCHAR(15),
    age smallint,
    lattitude real,
    longitude real,
    somebool boolean,
    message textitem
    };
    在一個(gè)Postgres的表定義中,字段名后面必須跟著字段類型。在上面的例子中我們給出了一些最普通的字段類型,你還可以在有關(guān)Postgres數(shù)據(jù)類 型的文檔中找到全部的字段類型的列表。對于不同的任務(wù),Postgres在字段類型方面有多種選擇,并可以存儲各種類型的數(shù)據(jù),從Internet地址到 貨幣信息到幾何對象的定義。這兒簡要地介紹最常用的幾種數(shù)據(jù)類型。
    SERIAL類型的字段和MySQL中的自增唯一ID等價(jià)。當(dāng)你在你的數(shù)據(jù)表中定義了一個(gè)SERIAL類型的列后,SERIAL的自增功能會被自動添加到 數(shù)據(jù)庫。當(dāng)自增功能不能適應(yīng)實(shí)際需求時(shí),我們可以自定義唯一ID的邏輯。從MySQL向Postgres轉(zhuǎn)輸數(shù)據(jù)時(shí),默認(rèn)的功能已經(jīng)足夠了。
    和字面上的意義一樣VARCHAR類型是一個(gè)可變長度的文本字段。字段的長度由括號中的數(shù)值定義。例如,VARCHAR(5)定義了一個(gè)最多可包含5個(gè)字符的文本字段。
    SMALLINT、INT和BIGINT用來定義整型字段。SMALLINT字段可存儲數(shù)值范圍為-32768到+32767(實(shí)際的范圍可能會稍微受到 你的計(jì)算機(jī)類型的影響,上面的范圍適用于最普通的系統(tǒng))。INT字段可存儲數(shù)值范圍為-2147483648到+2147483647。而BIGIN字段 類型可存儲任何更大的整數(shù),它沒有范圍的限制。
    REAL字符類型是一個(gè)包含十進(jìn)制小數(shù)的實(shí)數(shù)。它可以精確到小數(shù)點(diǎn)后六位。DOUBLE PRECISION字段與此相類似,但是它可以精確到小數(shù)點(diǎn)后15位。
    BOOLEAN字段是真或假、1或0。這和MySQL中相似。
    TIMESTAMP字段和MySQL中的情況類型。每次記錄更新時(shí),timestamp被更新為當(dāng)前的日期和時(shí)間。Postgres的時(shí)間字段還可以包含時(shí)區(qū)信息。有關(guān)Postgres時(shí)間數(shù)據(jù)的更復(fù)雜的應(yīng)用,請參看PostgreSQL文檔的日期和時(shí)間。

    建立數(shù)據(jù)表
    當(dāng)你使用SQL文件在Postgres中建立數(shù)據(jù)表時(shí),請檢查在每一個(gè)CREATE TABLE查詢的最后是不是都以分號結(jié)束 - 這對于Postgres是不可省略的。使用telnet這樣的工具連接到你的Web主機(jī),然后用下面的方法建立數(shù)據(jù)表。
    首先,用一個(gè)文本編輯器打開你的表定義文件。然后登錄到你的主機(jī),并輸入psql運(yùn)行Postgres交互終端。默認(rèn)的用戶論證方式是使用你的 telnet/FTP用戶名作為你的Postgres帳號。這使得不需要你輸入用戶名和口令,Postgres就能自動鑒別你的身份。你的Web主機(jī)也許 不是采用的這種方式,在這種情況下,你需要為psql程序帶入?yún)?shù):psql -d databasename -U username -W。-d用來指定數(shù)據(jù)庫,-U指定用戶名,而-W要求psql提示你輸入一個(gè)口令。
    當(dāng)你成功地運(yùn)行了psql以后,將每個(gè)CREATE TABLE查詢單獨(dú)地粘貼到psql中并按回車鍵。如果在你的SQL語句中有錯(cuò)誤,psql會給出相應(yīng)提示。通過逐一地加入每一個(gè)表,你會得到每一個(gè)表的調(diào)試信息,這樣做起來相當(dāng)簡單。
    如果,在你輸入了表的定義之后,你發(fā)現(xiàn)遺漏了一兩個(gè)字段,有兩種方法能解決這個(gè)問題。你可以使用ALTER TABLE命令,或者是使用DROP TABLE刪除這張表,然后重新生成。如果你使用第二種方法,你會看到一個(gè)警告以驗(yàn)證你是不是真的想要刪除表。
    要使用DROP TABLE命令,只需要輸入DROP TABLE practicetable;。這會刪除我們剛才定義的表。但是當(dāng)你對這個(gè)表重新進(jìn)行定義時(shí),你會發(fā)現(xiàn)一個(gè)錯(cuò)誤。這是因?yàn)樵趧h除一個(gè)表時(shí)并不相應(yīng)地刪除這 個(gè)表中SERIAL類型字段的序列。這些遺留下來的序列會在你重建表時(shí)引起錯(cuò)誤。要解決這個(gè)問題,你必須在刪除表之前使用DROP SEQUENCE sequencename;刪除相應(yīng)的序列。而且有件很討厭的事,那就是序列名并不就是SERIAL列的名字。當(dāng)你定義一個(gè)SERIAL類型的字段 時(shí),Postgres會自動生成這樣的序列名:tablename_colname_seq。在現(xiàn)在的這種情況下,DROP SEQUENCE 語句將會是這樣的:DROP SEQUENCE practicetable_someID_seq;。現(xiàn)在你就可以刪除這張表并重新生成它了。
    在添加完這些表之后,你可以輸入z對這些表進(jìn)行復(fù)查。而輸入q將會退出psql?,F(xiàn)在剩下來的就是準(zhǔn)備輸入到Postgres中的數(shù)據(jù)了。

    處理Dump文件
    因?yàn)镸ySQL保留了絕大多數(shù)的SQL語言的標(biāo)準(zhǔn),從一個(gè)SQL的dump文件中導(dǎo)出實(shí)際數(shù)據(jù)并不是太困難的。然而,在我們使用Postgres對這個(gè)文件進(jìn)行處理前,我們還是需要作一些編輯工作。
    對于數(shù)據(jù)記錄,在MySQL和Postgres之間的主要區(qū)別是對引號的處理。在Postgres中,字符串變量(包含文本的變量)必須由兩個(gè)單引號引 出。而在MySQL中,你還可以使用雙引號,但是幸運(yùn)的是,在mysqldump程序中程序中使用的是單引號,這剛好與Postgres一致。然 而,MySQL和Postgres還有一個(gè)地方不同,那就是對字符串中出現(xiàn)的引號的處理。在MySQL中使用"",而在Postgres中使用"。使用你 的文本編輯器并通過替換功能將其中所有的""替換為"。有趣的是,Postgres和MySQL都使用'來表示單引號,這使得我們免去了一個(gè)麻煩。

    導(dǎo)入到Postgres中
    當(dāng)你整理好SQL dump文件后,將這個(gè)文件上載到你的Web主機(jī)中,就如同你當(dāng)初建表那樣登錄到主機(jī),轉(zhuǎn)到SQL dump文件存放的目錄。啟動psql,不過這次你必須使用另一個(gè)命令行參數(shù):psql -f sqldump.txt,這兒的sqldump.txt就改為你的SQL dump文件的文件名。這個(gè)命令會將全部的SQL文件導(dǎo)入到適當(dāng)?shù)腜ostgres數(shù)據(jù)表中。在此之前,你也許還需要其它的一些命令行參數(shù)以使得psql 可以對你的身份進(jìn)行驗(yàn)證。如果發(fā)生了錯(cuò)誤,psql會告訴這是由什么引起的。找到文件中的這一部分,找到問題并手工解決它。我當(dāng)初是沒有遇到任何問題,我 差不多準(zhǔn)備結(jié)束工作了。但是,很快我注意到另一個(gè)問題。
    在我開始使用我的新的Postgres驅(qū)動的站點(diǎn)時(shí),我偶然地發(fā)現(xiàn)MySQL和Postgres之間另一個(gè)不兼容的地方。SERIAL類型的自增字段所使 用的Postgres的序列,它從1開始,并在每次有一個(gè)SERIAL類型字段的記錄插入時(shí)加一。然而,在我導(dǎo)入MySQL的dump文件時(shí),這個(gè) dump文件中的SQL將這個(gè)值定義為整型主鍵。我當(dāng)時(shí)的情況是,我有一個(gè)到唯一主鍵已經(jīng)到了60,而序列仍然是1。于是我的每一個(gè)插入命令都沒法成功, 因?yàn)楦鶕?jù)序列產(chǎn)生的不是唯一ID。我當(dāng)時(shí)用了一個(gè)很笨的方法解決這個(gè)問題,那就是運(yùn)行了60次INSERT語句以將序列調(diào)整為適當(dāng)?shù)闹?,但是后來有一個(gè)熟 悉Postgres的朋友教給我一個(gè)好方法。下面就是他所講的方法:
    使用telnet這樣的終端程序連接到你的主機(jī)。然后啟動psql程序。首先,確定表中ID的最大值。這可以用SELECT fieldname FROM tablename WHERE fieldname=MAX(fieldname);。然后使用DROP SEQUENCE table_colname_seq;刪除有問題的序列,這兒table是表名,而colname是SERIAL字段的列名。然后使用CREATE SEQUENCE table_colname_seq START 61;重建序列,當(dāng)然這兒的61應(yīng)根據(jù)你的實(shí)際情況進(jìn)行修改。

    安裝一個(gè)圖形界面的工具
    當(dāng)我成功地將數(shù)據(jù)導(dǎo)入到Postgres后,我還需要讓我的不懂Unix的伙伴能夠操作數(shù)據(jù)庫中的數(shù)據(jù)。當(dāng)初的MySQL我是使用的 phpMyAdmin,這是一個(gè)很好用的工具,它能夠在線的顯示和編輯數(shù)據(jù)庫。幸運(yùn)的是,已經(jīng)有了“Postgres版本”的phpMyAdmin,那就 是phpPgAdmin。
    phpPgAdmin的安裝非常簡單。首先,從phpPgAdmin網(wǎng)站下載最新的版本,然后將其放到你的Web主 機(jī)上的你所能訪問的地方。使用telnet這樣的工具登陸到主機(jī)。到phpPgAdmin.tar.gz文件所在的目錄,輸入tar -xzvf phpPgAdmin.tar.gz對程序進(jìn)行解壓(這里只是舉個(gè)例子,你的文件名可能不一樣)。下面一件事就是將解壓生成的新的子目錄移到合適的地方, 并閱讀README文件。
    最后,用你的Web主機(jī)上的文本編輯器打開config.inc.php。這個(gè)文件中包含了對phpPgAdmin的配置。將這個(gè)文件配置好你就可以通過 瀏覽器使用PhpPgAdmin了,它會提示你輸入用戶名并登錄,通過這個(gè)程序你管理你的數(shù)據(jù)庫將變得非常簡單。

    結(jié)語
    與MySQL相比,Postgres更加穩(wěn)定,更加可靠,可以應(yīng)付更大的數(shù)據(jù)。按照上面的提示,你可以使用SQL的dump文件將數(shù)據(jù)從MySQL轉(zhuǎn)到 Postgres。如果在這個(gè)過程中你遇到什么困難,從Postgres網(wǎng)站你可以找到一些非常有用的文檔資源。

    聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    SQLite、BerkeleyDB、PostgreSQL、MySQL、Firebird、mSQL

    SQLite、BerkeleyDB、PostgreSQL、MySQL、Firebird、mSQL:SQLite數(shù)據(jù)庫是中小站點(diǎn)CMS的最佳選擇 作者:孫毓波 (AKCMS 作者) SQLite 是一個(gè)類似Access的輕量級數(shù)據(jù)庫系統(tǒng),但是更 SQLite數(shù)據(jù)庫是中小站點(diǎn)CMS的最佳選擇 作者:孫毓波 (AKCMS 作者) SQLite 是一個(gè)類似Access的輕量級數(shù)據(jù)庫系統(tǒng),但是更小
    推薦度:
    標(biāo)簽: SQLite mysql mys
    • 熱門焦點(diǎn)

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top