十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
四、MySQL的主要優(yōu)點(diǎn)
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比魏都網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式魏都網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋魏都地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
1、首先是速度,MySQL通常要比PostgreSQL快得多。MySQL自已也宣稱速度是他們追求的主要目標(biāo)之一,基于這個原因,MySQL在以前的文檔中也曾經(jīng)說過并不準(zhǔn)備支持事務(wù)和觸發(fā)器。但是在最新的文檔中,我們看到MySQL 4.0.2-alpha已經(jīng)開始支持事務(wù),而且在MySQL的TODO中,對觸發(fā)器、約束這樣的注定會降低速度的功能也列入了日程。但是,我們?nèi)匀挥欣碛上嘈牛琈ySQL將有可能一直保持速度的優(yōu)勢。
2、MySQL比PostgreSQL更流行,流行對于一個商業(yè)軟件來說,也是一個很重要的指標(biāo),流行意味著更多的用戶,意味著經(jīng)受了更多的考驗(yàn),意味著更好的商業(yè)支持、意味著更多、更完善的文檔資料。
3、與PostgreSQL相比,MySQL更適宜在Windows環(huán)境下運(yùn)行。MySQL作為一個本地的Windows應(yīng)用程序運(yùn)行(在NT/Win2000/WinXP下,是一個服務(wù)),而PostgreSQL是運(yùn)行在Cygwin模擬環(huán)境下。PostgreSQL在Windows下運(yùn)行沒有MySQL穩(wěn)定,應(yīng)該是可以想象的。
4、MySQL使用了線程,而PostgreSQL使用的是進(jìn)程。在不同線程之間的環(huán)境轉(zhuǎn)換和訪問公用的存儲區(qū)域顯然要比在不同的進(jìn)程之間要快得多。
5、MySQL可以適應(yīng)24/7運(yùn)行。在絕大多數(shù)情況下,你不需要為MySQL運(yùn)行任何清除程序。PostgreSQL目前仍不完全適應(yīng)24/7運(yùn)行,這是因?yàn)槟惚仨毭扛粢欢螘r間運(yùn)行一次VACUUM。
6、MySQL在權(quán)限系統(tǒng)上比PostgreSQL某些方面更為完善。PostgreSQL只支持對于每一個用戶在一個數(shù)據(jù)庫上或一個數(shù)據(jù)表上的INSERT、SELECT和UPDATE/DELETE的授權(quán),而MySQL允許你定義一整套的不同的數(shù)據(jù)級、表級和列級的權(quán)限。對于列級的權(quán)限,PostgreSQL可以通過建立視圖,并確定視圖的權(quán)限來彌補(bǔ)。MySQL還允許你指定基于主機(jī)的權(quán)限,這對于目前的PostgreSQL是無法實(shí)現(xiàn)的,但是在很多時候,這是有用的。
7、由于MySQL 4.0.2-alpha開始支持事務(wù)的概念,因此事務(wù)對于MySQL不再僅僅成為劣勢。相反,因?yàn)镸ySQL保留無事務(wù)的表類型。這就為用戶提供了更多的選擇。
8、MySQL的MERGE表提供了一個獨(dú)特管理多個表的方法。
9、MySQL的myisampack可以對只讀表進(jìn)行壓縮,此后仍然可以直接訪問該表中的行。
但是由于“大數(shù)據(jù)”和“Hadoop”這兩個熱門詞,即使很多人實(shí)際上不需要Hadoop,他們也愿意穿上“緊身衣”。
一、如果我的數(shù)據(jù)量是幾百兆,Excel可能沒法加載它
對于Excel軟件來說的“很大的數(shù)據(jù)”并非大數(shù)據(jù),其實(shí)還有其它極好的工具可以使用——我喜歡的Pandas。Pandas構(gòu)建于Numpy庫 之上,可以以矢量格式的方式有效地把數(shù)百兆的數(shù)據(jù)載入到內(nèi)存中。在我購買已3年的筆記本上,它可以用Numpy在一眨眼的功夫把1億的浮點(diǎn)數(shù)乘在一起。 Matlab和R也是極好的工具。
對于幾百兆的數(shù)據(jù)量,典型的做法是寫一個簡單的Python腳本按行讀取文件行,并處理它,向另一個文件寫入。
二、如果我的數(shù)據(jù)是10GB呢
我買了個新筆記本,它有16GB的內(nèi)存和256GB的SSD。如果你要載入一個10GB的CSV文件到Pandas,它占用的內(nèi)存實(shí)際上是很小的 ——其結(jié)果是以數(shù)字類型的字符串保存的,如“17284832583”作為4字節(jié)貨8字節(jié)的整數(shù),或存儲“284572452.2435723”字符串作 為8字節(jié)的雙精度浮點(diǎn)數(shù)。
最壞的情況是你或許不能把所有的數(shù)據(jù)都同時載入到內(nèi)存中。
三、如果我的數(shù)據(jù)是100GB、500GB或1TB呢
買個2TB或4TB的硬盤,在桌面PC或服務(wù)器上安裝一個Postgre來解決它。
四、Hadoop遠(yuǎn)遠(yuǎn)比不上SQL或Python腳本
在計算的表達(dá)方面,Hadoop弱于SQL,也弱于Python腳本。
SQL是一個很直接的查詢語言,適合做業(yè)務(wù)分析,SQL的查詢相當(dāng)簡單,而且還非??臁绻愕臄?shù)據(jù)庫使用了正確的索引,二級查詢或多級查詢另當(dāng)別論。
Hadoop沒有索引的概念,Hadoop只有全表掃描,Hadoop有高度泄露抽象——我花了很多時間來處理Java的內(nèi)存錯誤、文件碎片以及集群競爭,這些時間遠(yuǎn)大于我花在數(shù)據(jù)分析上的時間。
如果你的數(shù)據(jù)并不是像SQL表那樣的結(jié)構(gòu)化數(shù)據(jù)(比如純文本、JSON對象、二進(jìn)制對象),通常是直接寫一個小的Python腳本來按行處理你的數(shù)據(jù)。把數(shù)據(jù)存儲于文件,處理每一個文件,等等。如果換成是Hadoop就很麻煩。
相比于SQL或Python腳本,Hadoop要慢的多。正確的使用索引后,SQL查詢總是非快——PostgreSQL簡單的查找索引,檢索確 切的鍵值。而Hadoop是全表掃描的,它會把整個表進(jìn)行重新排序。通過把數(shù)據(jù)表分片到多臺計算機(jī)上后,重排序是很快的。另一方面,處理二進(jìn)制對 象,Hadoop需要重復(fù)往返于命名節(jié)點(diǎn),目的是查找和處理數(shù)據(jù)。這適合用Python腳本來實(shí)現(xiàn)。
五、我的數(shù)據(jù)超過了5TB
你應(yīng)該考慮使用Hadoop,而無需做過多的選擇。
使用Hadoop唯一的好處是可伸縮性非常好。如果你有一個包含了數(shù)TB數(shù)據(jù)的表,Hadoop有一個適合全表掃描的選項(xiàng)。如果你沒有這樣大數(shù)據(jù)量的表,那么你應(yīng)該像躲避瘟疫那樣避免使用Hadoop。這樣使用傳統(tǒng)的方法來解決問題會更輕松。
六、Hadoop是一個極好的工具
我并不討厭Hadoop,當(dāng)我用其它工具不能很好處理數(shù)據(jù)時我會選擇Hadoop。另外,我推薦使用Scalding,不要使用Hive或Pig。Scalding支持使用Scala語言來編寫Hadoop任務(wù)鏈,隱藏了其下的MapReduce。
1. 概述
cstore_fdw實(shí)現(xiàn)了 PostgreSQL 數(shù)據(jù)庫的列式存儲。列存儲非常適合用于數(shù)據(jù)分析的場景,數(shù)據(jù)分析的場景下數(shù)據(jù)是批量加載的。
這個擴(kuò)展使用了Optimized Row Columnar (ORC)數(shù)據(jù)存儲格式,ORC改進(jìn)了Facebook的RCFile格式,帶來如下好處:
壓縮:將內(nèi)存和磁盤中數(shù)據(jù)大小削減到2到4倍??梢詳U(kuò)展以支持不同壓縮算法。
列投影:只提取和查詢相關(guān)的列數(shù)據(jù)。提升IO敏感查詢的性能。
跳過索引:為行組存儲最大最小統(tǒng)計值,并利用它們跳過無關(guān)的行。
2. 使用
cstore_fdw的安裝和使用都非常簡單,可以參考官方資料。
thub.com/citusdata/cstore_fdw
注)注意cstore_fdw只支持PostgreSQL9.3和9.4 。
下面做幾個簡單的性能對比,看看cstore_fdw究竟能帶來多大的性能提升。
2.1 數(shù)據(jù)加載
2.1.1 普通表
CREATE TABLE tb1
(
id int,
c1 TEXT,
c2 TEXT,
c3 TEXT,
c4 TEXT,
c5 TEXT,
c6 TEXT,
c7 TEXT,
c8 TEXT,
c9 TEXT,
c10 TEXT
);
注:要和普通表的全表掃描作對比,所以不建主鍵和索引。
[postgres@node2 chenhj]$ time psql -p 40382 -At -F, -c "select id,id::text,id::text,id::text,id::text,id::text,id::text,id::text,id::text,id::text,id::text from generate_series(1,10000000) id"|time psql -p 40382 -c "copy tb1 from STDIN with CSV"
COPY 10000000
1.56user 1.00system 6:42.39elapsed 0%CPU (0avgtext+0avgdata 7632maxresident)k
776inputs+0outputs (17major+918minor)pagefaults 0swaps
real 6m42.402s
user 0m15.174s
sys 0m14.904s
postgres=# select pg_total_relation_size('tb1'::regclass);
pg_total_relation_size
------------------------
1161093120
(1 row)
postgres=# \timing
Timing is on.
postgres=# analyze tb1;
ANALYZE
Time: 11985.070 ms
插入1千萬條記錄,數(shù)據(jù)占用存儲大小1.16G,插入耗時6分42秒,分析耗時12秒。
2.1.2 cstore表
$ mkdir -p /home/chenhj/data94/cstore
CREATE EXTENSION cstore_fdw;
CREATE SERVER cstore_server FOREIGN DATA WRAPPER cstore_fdw;
CREATE FOREIGN TABLE cstb1
(
id int,
c1 TEXT,
c2 TEXT,
c3 TEXT,
c4 TEXT,
c5 TEXT,
c6 TEXT,
c7 TEXT,
c8 TEXT,
c9 TEXT,
c10 TEXT
)
SERVER cstore_server
OPTIONS(filename '/home/chenhj/data94/cstore/cstb1.cstore',
compression 'pglz');
[postgres@node2 chenhj]$ time psql -p 40382 -At -F, -c "select id,id::text,id::text,id::text,id::text, id::text,id::text,id::text,id::text,id::text,id::text from generate_series(1,10000000) id"|time psql -p 40382 -c "copy cstb1 from STDIN with CSV"
COPY 10000000
1.53user 0.78system 7:35.15elapsed 0%CPU (0avgtext+0avgdata 7632maxresident)k
968inputs+0outputs (20major+920minor)pagefaults 0swaps
real 7m35.520s
user 0m14.809s
sys 0m14.170s
[postgres@node2 chenhj]$ ls -l /home/chenhj/data94/cstore/cstb1.cstore
-rw------- 1 postgres postgres 389583021 Jun 23 17:32 /home/chenhj/data94/cstore/cstb1.cstore
postgres=# \timing
Timing is on.
postgres=# analyze cstb1;
ANALYZE
Time: 5946.476 ms
插入1千萬條記錄,數(shù)據(jù)占用存儲大小390M,插入耗時7分35秒,分析耗時6秒。
使用cstore列存儲后,數(shù)據(jù)占用存儲大小降到普通表的3分之1。需要說明的是,由于所有TEXT列填充了隨機(jī)數(shù)據(jù),壓縮率不算高,某些實(shí)際的應(yīng)用場景下壓縮效果會比這更好。
2.2 Text列的like查詢性能對比
2.2.1 普通表
清除文件系統(tǒng)緩存,并重啟PostgreSQL
[postgres@node2 chenhj]$ pg_ctl -D /home/chenhj/data94 -l logfile94 restart
[root@node2 ~]# free
total used free shared buffers cached
Mem: 2055508 771356 1284152 0 9900 452256
-/+ buffers/cache: 309200 1746308
Swap: 4128760 387624 3741136
[root@node2 ~]# echo 1 /proc/sys/vm/drop_caches
[root@node2 ~]# free
total used free shared buffers cached
Mem: 2055508 326788 1728720 0 228 17636
-/+ buffers/cache: 308924 1746584
Swap: 4128760 381912 3746848
對Text列執(zhí)行l(wèi)ike查詢
[postgres@node2 chenhj]$ iostat -k dm-2
Linux 2.6.32-71.el6.x86_64 (node2) 06/23/14 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.80 0.00 0.38 3.42 0.00 95.40
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
dm-2 58.55 330.68 212.08 7351441 4714848
[postgres@node2 chenhj]$ time psql -p 40382 -c "select count(*) from tb1 where c1 like '%66'"
count
--------
100000
(1 row)
real 0m7.051s
user 0m0.001s
sys 0m0.004s
[postgres@node2 chenhj]$ iostat -k dm-2
Linux 2.6.32-71.el6.x86_64 (node2) 06/23/14 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.80 0.00 0.38 3.43 0.00 95.39
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
dm-2 58.90 381.53 211.90 8489597 4714956
耗時7.1秒,產(chǎn)生IO讀1.14G,IO寫108K。
不清文件系統(tǒng)緩存,不重啟PostgreSQL,再執(zhí)行一次。消耗時間降到1.6秒,幾乎不產(chǎn)生IO。
[postgres@node2 chenhj]$ iostat -k dm-2
Linux 2.6.32-71.el6.x86_64 (node2) 06/23/14 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.80 0.00 0.38 3.43 0.00 95.39
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
dm-2 58.81 332.20 213.06 7350301 4714364
[postgres@node2 chenhj]$ time psql -p 40382 -c "select count(*) from tb1 where c1 like '%66'"
count
--------
100000
(1 row)
real 0m1.601s
user 0m0.002s
sys 0m0.001s
[postgres@node2 chenhj]$ iostat -k dm-2
Linux 2.6.32-71.el6.x86_64 (node2) 06/23/14 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.80 0.00 0.38 3.43 0.00 95.38
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
dm-2 58.80 332.12 213.01 7350337 4714364
2.2.2 cstore表
清除文件系統(tǒng)緩存,并重啟PostgreSQL
[postgres@node2 chenhj]$ pg_ctl -D /home/chenhj/data94 -l logfile94 restart
[root@node2 ~]# echo 1 /proc/sys/vm/drop_caches
對Text列執(zhí)行l(wèi)ike查詢
[postgres@node2 chenhj]$ iostat -k dm-2
Linux 2.6.32-71.el6.x86_64 (node2) 06/23/14 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.80 0.00 0.38 3.38 0.00 95.45
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
dm-2 58.12 376.42 209.04 8492017 4716048
[postgres@node2 chenhj]$ time psql -p 40382 -c "select count(*) from cstb1 where c1 like '%66'"
count
--------
100000
(1 row)
real 0m2.786s
user 0m0.002s
sys 0m0.003s
[postgres@node2 chenhj]$ iostat -k dm-2
Linux 2.6.32-71.el6.x86_64 (node2) 06/23/14 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.80 0.00 0.38 3.38 0.00 95.44
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
dm-2 58.12 378.75 208.89 8550761 4716048
耗時2.8秒,產(chǎn)生IO讀59M,IO寫0K。執(zhí)行時間優(yōu)化的雖然不是太多,但I(xiàn)O大大減少,可見列投影起到了作用。
不清文件系統(tǒng)緩存,不重啟PostgreSQL,再執(zhí)行一次。消耗時間降到1.4秒,幾乎不產(chǎn)生IO。
[postgres@node2 chenhj]$ iostat -k dm-2
Linux 2.6.32-71.el6.x86_64 (node2) 06/23/14 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.80 0.00 0.38 3.36 0.00 95.47
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
dm-2 57.75 376.33 207.58 8550809 4716524
[postgres@node2 chenhj]$ time psql -p 40382 -c "select count(*) from cstb1 where c1 like '%66'"
count
--------
100000
(1 row)
real 0m1.424s
user 0m0.002s
sys 0m0.001s
[postgres@node2 chenhj]$ iostat -k dm-2
Linux 2.6.32-71.el6.x86_64 (node2) 06/23/14 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.80 0.00 0.38 3.36 0.00 95.47
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
dm-2 57.70 375.96 207.38 8550809 4716588
2.3 對Int列執(zhí)行=查詢
2.3.1 普通表
清除文件系統(tǒng)緩存,并重啟PostgreSQL后
[postgres@node2 chenhj]$ pg_ctl -D /home/chenhj/data94 -l logfile94 restart
[root@node2 ~]# echo 1 /proc/sys/vm/drop_caches
對Int列執(zhí)行=查詢
[postgres@node2 chenhj]$ iostat -k dm-2
Linux 2.6.32-71.el6.x86_64 (node2) 06/23/14 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.79 0.00 0.37 3.33 0.00 95.50
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
dm-2 57.25 373.21 205.67 8560897 4717624
[postgres@node2 chenhj]$ time psql -p 40382 -c "select count(*) from tb1 where id =666666"
count
-------
1
(1 row)
real 0m6.844s
user 0m0.002s
sys 0m0.006s
[postgres@node2 chenhj]$ iostat -k dm-2
Linux 2.6.32-71.el6.x86_64 (node2) 06/23/14 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.79 0.00 0.37 3.34 0.00 95.49
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
dm-2 57.60 422.57 205.54 9699161 4717708
耗時6.8秒,產(chǎn)生IO讀1.14G,IO寫84K
不清緩存,再執(zhí)行一次。消耗時間降到1.1秒,幾乎不產(chǎn)生IO。
[postgres@node2 chenhj]$ iostat -k dm-2
Linux 2.6.32-71.el6.x86_64 (node2) 06/23/14 _x86_64_ (2 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.79 0.00 0.37 3.33 0.00 95.50
Device: tps kB_read/s kB_wrtn/s kB_read kB_wrtn
dm-2 57.44 421.37 204.97 9699177 4718032
[postgres@node2 chenhj]$ time psql -p 40382 -c "select count(*) from tb1 where id =666666"
count
-------
PostgreSQL 和 MySQL 是將數(shù)據(jù)組織成表的關(guān)系數(shù)據(jù)庫。這些表可以根據(jù)每個表共有的數(shù)據(jù)鏈接或關(guān)聯(lián)。關(guān)系數(shù)據(jù)庫使您的企業(yè)能夠更好地了解可用數(shù)據(jù)之間的關(guān)系,并幫助獲得新的見解以做出更好的決策或發(fā)現(xiàn)新的機(jī)會。
PostgreSQL 和 MySQL 都依賴于 SQL(結(jié)構(gòu)化查詢語言),這是與管理系統(tǒng)交互的標(biāo)準(zhǔn)語言。SQL 允許使用具有簡單結(jié)構(gòu)的幾行源代碼連接表,大多數(shù)非技術(shù)員工可以快速學(xué)習(xí)。
使用 SQL,分析師不需要知道訂單表在磁盤上的位置、如何執(zhí)行查找以查找特定訂單或如何連接訂單表和客戶表。數(shù)據(jù)庫編譯查詢并計算出正確的數(shù)據(jù)點(diǎn)。
MySQL 和 PostgreSQL 都支持 JavaScript Object Notation (JSON) 存儲和傳輸數(shù)據(jù),盡管 PostgreSQL 也支持 JSONB,這是 JSON 的二進(jìn)制版本,它消除了鍵的重復(fù)和無關(guān)的空格。
除了傳統(tǒng)的支持機(jī)制外,這兩個數(shù)據(jù)庫都提供強(qiáng)大的社區(qū)支持。
PostgreSQL,也稱為 Postgres,是一種開源關(guān)系數(shù)據(jù)庫,因其可靠性、靈活性和對開放技術(shù)標(biāo)準(zhǔn)的支持而享有盛譽(yù)。PostgreSQL 支持非關(guān)系和關(guān)系數(shù)據(jù)類型。它被稱為當(dāng)今可用的最兼容、最穩(wěn)定和最成熟的關(guān)系數(shù)據(jù)庫之一,并且可以輕松處理復(fù)雜的查詢。
PostgreSQL 的特性包括:
PostgreSQL 這是一個“一刀切”的解決方案,適用于許多尋求經(jīng)濟(jì)高效的方法來改進(jìn)其數(shù)據(jù)庫管理系統(tǒng) (DBMS) 的企業(yè)。它具有足夠的可擴(kuò)展性和多功能性,可以通過強(qiáng)大的擴(kuò)展生態(tài)系統(tǒng)快速支持各種專業(yè)用例,涵蓋時間序列數(shù)據(jù)類型和地理空間分析等工作。作為開源數(shù)據(jù)庫解決方案構(gòu)建的 PostgreSQL 完全不受許可限制、供應(yīng)商鎖定的可能性或過度部署的風(fēng)險。PostgreSQL 通過對象關(guān)系數(shù)據(jù)庫管理系統(tǒng) (ORDBMS) 進(jìn)行管理。
PostgreSQL 負(fù)責(zé)管理業(yè)務(wù)活動的在線事務(wù)處理 (OLTP)協(xié)議的企業(yè)數(shù)據(jù)庫管理員提供了理想的解決方案,包括電子商務(wù)、客戶關(guān)系管理系統(tǒng) (CRM) 和財務(wù)分類帳。它也是管理接收、創(chuàng)建和生成的數(shù)據(jù)分析的理想選擇。
這些是 PostgreSQL 的一些主要優(yōu)點(diǎn):
MySQL — 一種快速、可靠、可擴(kuò)展且易于使用的開源關(guān)系數(shù)據(jù)庫系統(tǒng) — 旨在處理關(guān)鍵任務(wù)、高負(fù)載的生產(chǎn)應(yīng)用程序。它是一種常見且易于啟動的數(shù)據(jù)庫,內(nèi)存、磁盤和 CPU 利用率較低,有關(guān)系數(shù)據(jù)庫管理系統(tǒng) (RDMS) 管理。MySQL Community Edition 是一個由活躍的在線社區(qū)支持的免費(fèi)下載版本。
MySQL 功能包括所有 SQL 標(biāo)準(zhǔn)命令以及事務(wù)和 ACID 合規(guī)性(代表原子性、一致性、隔離性和持久性)。
兩個最常見的關(guān)系數(shù)據(jù)庫是什么 MySQL 和 Oracle。MySQL 不是 SQL Server 的同義詞,SQL Server 是 Microsoft 許可產(chǎn)品,與 MAC OS X 缺乏兼容性。
MariaDB 經(jīng)常與 MySQL 混淆,它是 MySQL 的一個開源分支,速度更快,提供更多存儲引擎 (12),但功能有限。MySQL 和 MariaDB 使用的存儲引擎都是 InnoDB。InnoDB 提供標(biāo)準(zhǔn)的 ACID 兼容特性。與 MySQL 不同,MariaDB 不支持?jǐn)?shù)據(jù)屏蔽或動態(tài)列表。
MySQL 通常用作 Web 數(shù)據(jù)庫來存儲各種信息類型,從單個信息數(shù)據(jù)點(diǎn)到為組織提供的產(chǎn)品或服務(wù)的完整列表。它是LAMP(Linux 操作系統(tǒng)、Apache HTTP 服務(wù)器、MySQL RDBMS 和 PHP 編程語言)的基礎(chǔ)組件,這是一種有助于創(chuàng)建API、Web 應(yīng)用程序和網(wǎng)站的軟件堆棧模型。
MySQL Workbench 是一個單一的、集成的可視化 SQL 平臺,用于 MySQL 數(shù)據(jù)庫的創(chuàng)建、開發(fā)、設(shè)計和管理。
MySQL 為市場提供了許多好處,包括:
PostgreSQL 和 MySQL 之間有很多不同之處。特性、功能和優(yōu)勢方面的一些差異如下:
總之,PostgreSQL 和 MySQL 都有不同的用途,它們之間的選擇取決于企業(yè)目標(biāo)和資源。一般來說,PostgreSQL 是一個更強(qiáng)大、更高級的數(shù)據(jù)庫管理系統(tǒng),非常適合需要在大型環(huán)境中快速執(zhí)行復(fù)雜查詢的組織。但是,對于預(yù)算和空間更受限制的公司來說,MySQL 是一個理想的解決方案。
碼字不容易啊,望采納。
ORACLE (甲骨文,美國)
優(yōu)點(diǎn):產(chǎn)品系列齊全,幾乎囊括所有應(yīng)用領(lǐng)域,大型,完善,安全,可以支持多個實(shí)例同時運(yùn)行,功能強(qiáng)。能在所有主流平臺上運(yùn)行(包括 windows)。完全支持所有的工業(yè)標(biāo)準(zhǔn)。采用完全開放策略??梢允箍蛻暨x擇最適合的解決方案。對開發(fā)商全力支持。
缺點(diǎn):價格成本,服務(wù)費(fèi)用,后期產(chǎn)品追加費(fèi)用,管理維護(hù)相對麻煩,對硬件的要求高。
幾乎匹配所有動態(tài)網(wǎng)頁設(shè)計,性能優(yōu)越。
SQLSERVER(微軟,美國)
優(yōu)點(diǎn):簡單,界面友好,上手容易,只能在WINDOWS平臺下使用。一般用于.net 程序設(shè)計。Windows9X系列產(chǎn)品是偏重于桌面應(yīng)用,NT server只適合中小型企業(yè)。
缺點(diǎn):windows平臺的可靠性,安全性和伸縮性是非常有限的。它不象unix那樣久經(jīng)考驗(yàn),尤其是在處理大數(shù)據(jù)量的關(guān)鍵業(yè)務(wù)時。
網(wǎng)頁設(shè)計多與C#(也是微軟的)經(jīng)典組合,不過也是幾乎開放所有開發(fā)語言接口
MYSQL (被oracle收購,收購后的新版已出,市場反應(yīng)一般)
優(yōu)點(diǎn):免費(fèi),功能不錯,是開源的,體積小,并發(fā)執(zhí)行的數(shù)據(jù)庫,如今mysql逐漸體現(xiàn)出性價比高的優(yōu)勢。
缺點(diǎn):穩(wěn)定性有待考量,面對大量數(shù)據(jù)的處理能力有限,并發(fā)性處理的機(jī)制不健全。
網(wǎng)頁開發(fā)mysql的應(yīng)用還是很多的,應(yīng)用比較廣泛。
DB2 (IBM 美國)
優(yōu)點(diǎn):優(yōu)點(diǎn)很多啦,與oracle一樣是大型以及超大型的數(shù)據(jù)庫,能力當(dāng)然很好啦,企業(yè)解決方案很牛X,在金融和電信方運(yùn)用DB2的很多,最適于海量數(shù)據(jù)。DB2在企業(yè)級的應(yīng)用最為廣泛,在全球的500家最大的企業(yè)中,幾乎85%以上用DB2數(shù)據(jù)庫服務(wù)器,而國內(nèi)到97年約占5%。不過與oracle相比db2的應(yīng)用相對較窄,一是價錢很貴,二是主要面向大型企業(yè),市場份額還是oracle最高,所以db2專家較少,很吃香的。
以db2的優(yōu)質(zhì)能力相對海量并發(fā)的web服務(wù)和訪問比較輕松啦。
Access(微軟,美國):
優(yōu)點(diǎn):操作簡潔、方便,不用依賴Server也可以對數(shù)據(jù)進(jìn)行操作。
缺點(diǎn):安全性不夠,如果做為服務(wù)器的話,對服務(wù)器要求很高,否則容易造成 MDB 損壞,高強(qiáng)度操作適應(yīng)性差,不能將 VBA 代碼開發(fā)的軟件系統(tǒng)直接編譯成 EXE 可執(zhí)行文件,不能脫離 ACCESS 或者 ACCESS RUNTIME 環(huán)境,該環(huán)境相對其他軟件體積較大(50M左右),每個數(shù)據(jù)庫文件最大限制只有2G,對于大型網(wǎng)站顯然不能夠勝任。
我接觸的access應(yīng)用比較少啦,關(guān)于開發(fā)的不了解了。
Sybase(Sybase 美國):
優(yōu)點(diǎn):操作簡單,管理相對容易,對新手很好理解,上手快,曾經(jīng)的sybase還是挺輝煌的,sybase 數(shù)據(jù)倉庫還是挺不錯,大數(shù)據(jù)的解決方案也不錯,與oracle,db2齊名,但是之后似乎難以追隨市場的腳步了。
缺點(diǎn):Sybase使用的編程接口不是開放的,沒有使用SQL92等相關(guān)的標(biāo)準(zhǔn),因此編制存儲程序和觸發(fā)器所用的Transact-SQL也是它們自己專用的。 優(yōu)化器(OPTIMIZER)不能有效的支持復(fù)雜的查詢(ComplexQueries)。應(yīng)用程序中稍微復(fù)雜一些的SQL語句,Sybase的優(yōu)化器就無法妥善優(yōu)化處理。已經(jīng)退出主流數(shù)據(jù)庫市場,市場份額縮水嚴(yán)重,被SAP收購后前途待觀望。
web應(yīng)用還是比較廣泛的啦。
informix(被IBM收購):
優(yōu)點(diǎn):如今被IBM定位為作為IBM在線事務(wù)處理(OLTP)旗艦級數(shù)據(jù)服務(wù)系統(tǒng),使用不是很廣泛,IBM對Informix和DB2都有長遠(yuǎn)的規(guī)劃,兩個數(shù)據(jù)庫產(chǎn)品互相吸取對方的技術(shù)優(yōu)勢。
缺點(diǎn):INFORMIX是以小型數(shù)據(jù)庫起家,所以其產(chǎn)品設(shè)計到目前為止仍有許多小型數(shù)據(jù)庫的限制。許多用戶都曾遇到INFORMIX在數(shù)據(jù)存儲、日志管理、備份、恢復(fù)等方面的問題。Informix的擴(kuò)展并行選項(xiàng)在支持多用戶并發(fā)訪問時存在困難。INFORMIX由于缺乏對大量數(shù)據(jù)的管理經(jīng)驗(yàn),所以其優(yōu)化器技術(shù)也不能針對大量數(shù)據(jù)做優(yōu)化。 小型企業(yè)可以嘗試使用。
postgresql(美國):
優(yōu)點(diǎn):輕盈好用的數(shù)據(jù)庫,有點(diǎn)很多,如優(yōu)化排序性能,內(nèi)存占用更少;表繼承(很強(qiáng)),提高加鎖效率和并發(fā)度;創(chuàng)建索引過程中允許INSERT/UPDATE/DELETE等等。
缺點(diǎn):不足之處就是大數(shù)量的場景有待市場檢驗(yàn),目前觸及海量數(shù)據(jù)的案例較少。
如果對你有幫助.請點(diǎn)擊我的回答下方【選為滿意回答】按鈕