MySQL
專注于為中小企業(yè)提供成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)鐘山免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了成百上千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
MySQL聲稱自己是最流行的開源數(shù)據(jù)庫。LAMP中的M指的就是MySQL。構(gòu)建在LAMP上的應(yīng)用都會使用MySQL,如WordPress、Drupal等大多數(shù)php開源程序。MySQL最初是由MySQL AB開發(fā)的,然后在2008年以10億美金的價(jià)格賣給了Sun公司,Sun公司又在2010年被Oracle收購。Oracle支持MySQL的多個(gè)版本:Standard、Enterprise、Classic、Cluster、Embedded與Community。其中有一些是免費(fèi)下載的,另外一些則是收費(fèi)的。其核心代碼基于GPL許可,由于MySQL被控制在Oracle,社區(qū)擔(dān)心會對MySQL的開源會有影響,所以開發(fā)了一些分支,比如: MariaDB和Percona。
PostgreSQL
PostgreSQL標(biāo)榜自己是世界上最先進(jìn)的開源數(shù)據(jù)庫。PostgreSQL的一些粉絲說它能與Oracle相媲美,而且沒有那么昂貴的價(jià)格和傲慢的客服。最初是1985年在加利福尼亞大學(xué)伯克利分校開發(fā)的,作為Ingres數(shù)據(jù)庫的后繼。PostgreSQL是完全由社區(qū)驅(qū)動的開源項(xiàng)目。它提供了單個(gè)完整功能的版本,而不像MySQL那樣提供了多個(gè)不同的社區(qū)版、商業(yè)版與企業(yè)版。PostgreSQL基于自由的BSD/MIT許可,組織可以使用、復(fù)制、修改和重新分發(fā)代碼,只需要提供一個(gè)版權(quán)聲明即可。
MySQL與PostgreSQL的對比
MySQL的背后是一個(gè)成熟的商業(yè)公司,而PostgreSQL的背后是一個(gè)龐大的志愿開發(fā)組。這使得MySQL的開發(fā)過程更為慎重,而PostgreSQL的反應(yīng)更為迅速。這樣的兩種背景直接導(dǎo)致了各自固有的優(yōu)點(diǎn)和缺點(diǎn)。
PostgreSQL相對于MySQL的優(yōu)勢
1)不僅僅是關(guān)系型數(shù)據(jù)庫
除了存儲正常的數(shù)據(jù)類型外,還支持存儲:
array,不管是一位數(shù)組還是多為數(shù)組均支持
json(hStore)和jsonb,相比使用text存儲接送要高效很多
json和jsonb之間的區(qū)別
jsonb和json在更高的層面上看起來幾乎是一樣的,但在存儲實(shí)現(xiàn)上是不同的。
json存儲完的文本,json列會每次都解析存儲的值,它不支持索引,但你可以為查詢創(chuàng)建表達(dá)式索引。
jsonb存儲的二進(jìn)制格式,避免了重新解析數(shù)據(jù)結(jié)構(gòu)。它支持索引,這意味著你可以不使用指定的索引就能查詢?nèi)魏温窂健?/p>
當(dāng)我們比較寫入數(shù)據(jù)速度時(shí),由于數(shù)據(jù)存儲的方式的原因,jsonb會比json稍微的慢一點(diǎn)。json列會每次都解析存儲的值,這意味著鍵的順序要和輸入的時(shí)候一樣。但jsonb不同,以二進(jìn)制格式存儲且不保證鍵的順序。因此,如果你有軟件需要依賴鍵的順序,jsonb可能不是你的應(yīng)用的最佳選擇。使用jsonb的優(yōu)勢還在于你可以輕易的整合關(guān)系型數(shù)據(jù)和非關(guān)系型數(shù)據(jù), PostgreSQL對于mongodb這類的基于文檔的數(shù)據(jù)庫是個(gè)不小的威脅,畢竟如果一個(gè)表中只有一列數(shù)據(jù)的類型是半結(jié)構(gòu)化的,沒有必要為了遷就它而整個(gè)表的設(shè)計(jì)采用schemaless的結(jié)構(gòu)。
2)支持地理信息處理擴(kuò)展
PostGIS 為PostgreSQL提供了存儲空間地理數(shù)據(jù)的支持,使PostgreSQL成為了一個(gè)空間數(shù)據(jù)庫,能夠進(jìn)行空間數(shù)據(jù)管理、數(shù)量測量與幾何拓?fù)浞治?。在功能上,和MYSQL對比,PostGIS具有下列優(yōu)勢:
O2O業(yè)務(wù)場景中的LBS業(yè)務(wù)使用PostgreSQL + PostGIS有無法比擬的優(yōu)勢。
3)可以快速構(gòu)建REST API
PostgREST 可以方便的為任何 PostgreSQL 數(shù)據(jù)庫提供完全的 RESTful API 服務(wù)。
4)支持樹狀結(jié)構(gòu)
支持R-trees這樣可擴(kuò)展的索引類型,可以更方便地處理一些特殊數(shù)據(jù)。MySQL 處理樹狀的設(shè)計(jì)會很復(fù)雜, 而且需要寫很多代碼, 而 PostgreSQL 可以高效處理樹結(jié)構(gòu)。
5)有極其強(qiáng)悍的 SQL 編程能力
支持遞歸,有非常豐富的統(tǒng)計(jì)函數(shù)和統(tǒng)計(jì)語法支持。
MySQL:支持 CREATE PROCEDURE 和 CREATE FUNCTION 語句。存儲過程可以用 SQL 和 C++ 編寫。用戶定義函數(shù)可以用 SQL、C 和 C++ 編寫。
PostgreSQL:沒有單獨(dú)的存儲過程,都是通過函數(shù)實(shí)現(xiàn)的。用戶定義函數(shù)可以用 PL/pgSQL(專用的過程語言)、PL/Tcl、PL/Perl、PL/Python 、SQL 和 C 編寫。
6)外部數(shù)據(jù)源支持
可以把 70 種外部數(shù)據(jù)源 (包括 Mysql, Oracle, CSV, hadoop …) 當(dāng)成自己數(shù)據(jù)庫中的表來查詢。Postgres有一個(gè)針對這一難題的解決方案:一個(gè)名為“外部數(shù)據(jù)封裝器(Foreign Data Wrapper,F(xiàn)DW)”的特性。該特性最初由PostgreSQL社區(qū)領(lǐng)袖Dave Page四年前根據(jù)SQL標(biāo)準(zhǔn)SQL/MED(SQL Management of External Data)開發(fā)。FDW提供了一個(gè)SQL接口,用于訪問遠(yuǎn)程數(shù)據(jù)存儲中的遠(yuǎn)程大數(shù)據(jù)對象,使DBA可以整合來自不相關(guān)數(shù)據(jù)源的數(shù)據(jù),將它們存入Postgres數(shù)據(jù)庫中的一個(gè)公共模型。這樣,DBA就可以訪問和操作其它系統(tǒng)管理的數(shù)據(jù),就像在本地Postgres表中一樣。例如,使用FDW for MongoDB,數(shù)據(jù)庫管理員可以查詢來自文檔數(shù)據(jù)庫的數(shù)據(jù),并使用SQL將它與來自本地Postgres表的數(shù)據(jù)相關(guān)聯(lián)。借助這種方法,用戶可以將數(shù)據(jù)作為行、列或JSON文檔進(jìn)行查看、排序和分組。他們甚至可以直接從Postgres向源文檔數(shù)據(jù)庫寫入(插入、更細(xì)或刪除)數(shù)據(jù),就像一個(gè)一體的無縫部署。也可以對Hadoop集群或MySQL部署做同樣的事。FDW使Postgres可以充當(dāng)企業(yè)的中央聯(lián)合數(shù)據(jù)庫或“Hub”。
7)沒有字符串長度限制
一般關(guān)系型數(shù)據(jù)庫的字符串有限定長度8k左右,無限長 TEXT 類型的功能受限,只能作為外部大數(shù)據(jù)訪問。而PostgreSQL的 TEXT 類型可以直接訪問,SQL語法內(nèi)置正則表達(dá)式,可以索引,還可以全文檢索,或使用xml xpath。MySQL 的各種text字段有不同的限制,要手動區(qū)分 small text, middle text, large text… PostgreSQL 沒有這個(gè)限制,text 能支持各種大小。
8)支持圖結(jié)構(gòu)數(shù)據(jù)存儲
沒有具體使用過,具體可以自己搜索下。參考鏈接:
9)支持窗口函數(shù)
窗口函數(shù)提供跨行相關(guān)的當(dāng)前查詢行集執(zhí)行計(jì)算的能力。僅當(dāng)調(diào)用跟著OVER子句的聚集函數(shù),作為窗口函數(shù);否則它們作為常規(guī)的聚合函數(shù)。窗口也是一種分組,但和 group by 的分組不同。窗口,可以提供分組之外,還可以執(zhí)行對每個(gè)窗口進(jìn)行計(jì)算。可以相像成是group by 后,然后對每個(gè)分組進(jìn)行計(jì)算,而不像Group by ,只是單純地分組。MySQL 不支持 OVER 子句, 而PostgreSQL支持。OVER 子句能簡單的解決 “每組取 top 5” 的這類問題。MySQL支持的SQL語法(ANSI SQL標(biāo)準(zhǔn))的很小一部分。不支持遞歸查詢、通用表表達(dá)式(Oracle的with 語句)或者窗口函數(shù)(分析函數(shù))。
10)對索引的支持更強(qiáng)
PostgreSQL 的可以使用函數(shù)和條件索引,這使得PostgreSQL數(shù)據(jù)庫的調(diào)優(yōu)非常靈活,mysql就沒有這個(gè)功能,條件索引在web應(yīng)用中很重要。對于索引類型:
MySQL:取決于存儲引擎。MyISAM:BTREE,InnoDB:BTREE。
PostgreSQL:支持 B-樹、哈希、R-樹和 Gist 索引。
InnoDB的表和索引都是按相同的方式存儲。也就是說表都是索引組織表。這一般要求主鍵不能太長而且插入時(shí)的主鍵最好是按順序遞增,否則對性能有很大影響。PostgreSQL不存在這個(gè)問題。
索引類型方面,MySQL取決于存儲引擎。MyISAM:BTREE,InnoDB:BTREE。PostgreSQL支持 B-樹、哈希、R-樹和 Gist 索引。
11)集群支持更好
Mysql Cluster可能與你的想象有較大差異。開源的cluster軟件較少。復(fù)制(Replication)功能是異步的并且有很大的局限性。例如,它是單線程的(single-threaded),因此一個(gè)處理能力更強(qiáng)的Slave的恢復(fù)速度也很難跟上處理能力相對較慢的Master。
PostgreSQL有豐富的開源cluster軟件支持。plproxy 可以支持語句級的鏡像或分片,slony 可以進(jìn)行字段級的同步設(shè)置,standby 可以構(gòu)建WAL文件級或流式的讀寫分離集群,同步頻率和集群策略調(diào)整方便,操作非常簡單。
另外,PostgreSQL的主備復(fù)制屬于物理復(fù)制,相對于MySQL基于binlog的邏輯復(fù)制,數(shù)據(jù)的一致性更加可靠,復(fù)制性能更高,對主機(jī)性能的影響也更小。對于WEB應(yīng)用來說,復(fù)制的特性很重要,mysql到現(xiàn)在也是異步復(fù)制,pgsql可以做到同步,異步,半同步復(fù)制。還有mysql的同步是基于binlog復(fù)制,類似oracle golden gate,是基于stream的復(fù)制,做到同步很困難,這種方式更加適合異地復(fù)制,pgsql的復(fù)制基于wal,可以做到同步復(fù)制。同時(shí),pgsql還提供stream復(fù)制。
12)事務(wù)隔離做的更好
MySQL 的事務(wù)隔離級別 repeatable read 并不能阻止常見的并發(fā)更新, 得加鎖才可以, 但悲觀鎖會影響性能, 手動實(shí)現(xiàn)樂觀鎖又復(fù)雜. 而 PostgreSQL 的列里有隱藏的樂觀鎖 version 字段, 默認(rèn)的 repeatable read 級別就能保證并發(fā)更新的正確性, 并且又有樂觀鎖的性能。
13)對于字符支持更好一些
MySQL 里需要 utf8mb4 才能顯示 emoji 的坑, PostgreSQL 沒這個(gè)坑。
14)對表連接支持較完整
對表連接支持較完整,MySQL只有一種表連接類型:嵌套循環(huán)連接(nested-loop),不支持排序-合并連接(sort-merge join)與散列連接(hash join)。PostgreSQL都支持。
15)存儲方式支持更大的數(shù)據(jù)量
PostgreSQL主表采用堆表存放,MySQL采用索引組織表,能夠支持比MySQL更大的數(shù)據(jù)量。
16)時(shí)間精度更高
MySQL對于時(shí)間、日期、間隔等時(shí)間類型沒有秒以下級別的存儲類型,而PostgreSQL可以精確到秒以下。
17)優(yōu)化器的功能較完整
MySQL對復(fù)雜查詢的處理較弱,查詢優(yōu)化器不夠成熟,explain看執(zhí)行計(jì)劃的結(jié)果簡單。性能優(yōu)化工具與度量信息不足。
PostgreSQL很強(qiáng)大的查詢優(yōu)化器,支持很復(fù)雜的查詢處理。explain返回豐富的信息。提供了一些性能視圖,可以方便的看到發(fā)生在一個(gè)表和索引上的select、delete、update、insert統(tǒng)計(jì)信息,也可以看到cache命中率。網(wǎng)上有一個(gè)開源的pgstatspack工具。
18)序列支持更好
MySQL 不支持多個(gè)表從同一個(gè)序列中取 id, 而 PostgreSQL 可以。
19)對子查詢支持更好
對子查詢的支持。雖然在很多情況下在SQL語句中使用子查詢效率低下,而且絕大多數(shù)情況下可以使用帶條件的多表連接來替代子查詢,但是子查詢的存在在很多時(shí)候仍然不可避免。而且使用子查詢的SQL語句與使用帶條件的多表連接相比具有更高的程序可讀性。幾乎任何數(shù)據(jù)庫的子查詢 (subquery) 性能都比 MySQL 好。
20)增加列更加簡單
MySQL表增加列,基本上是重建表和索引,會花很長時(shí)間。PostgreSQL表增加列,只是在數(shù)據(jù)字典中增加表定義,不會重建表.
MySQL相對于PostgreSQL的優(yōu)勢
1)MySQL比PostgreSQL更流行
流行對于一個(gè)商業(yè)軟件來說,也是一個(gè)很重要的指標(biāo),流行意味著更多的用戶,意味著經(jīng)受了更多的考驗(yàn),意味著更好的商業(yè)支持、意味著更多、更完善的文檔資料。易用,很容易安裝。第三方工具,包括可視化工具,讓用戶能夠很容易入門。
2)回滾實(shí)現(xiàn)更優(yōu)
innodb的基于回滾段實(shí)現(xiàn)的MVCC機(jī)制,相對PG新老數(shù)據(jù)一起存放的基于XID的MVCC機(jī)制,是占優(yōu)的。新老數(shù)據(jù)一起存放,需要定時(shí)觸發(fā)VACUUM,會帶來多余的IO和數(shù)據(jù)庫對象加鎖開銷,引起數(shù)據(jù)庫整體的并發(fā)能力下降。而且VACUUM清理不及時(shí),還可能會引發(fā)數(shù)據(jù)膨脹。
3)在Windows上運(yùn)行更可靠
與PostgreSQL相比,MySQL更適宜在Windows環(huán)境下運(yùn)行。MySQL作為一個(gè)本地的Windows應(yīng)用程序運(yùn)行(在 NT/Win2000/WinXP下,是一個(gè)服務(wù)),而PostgreSQL是運(yùn)行在Cygwin模擬環(huán)境下。PostgreSQL在Windows下運(yùn)行沒有MySQL穩(wěn)定,應(yīng)該是可以想象的。
4)線程模式相比進(jìn)程模式的優(yōu)勢
MySQL使用了線程,而PostgreSQL使用的是進(jìn)程。在不同線程之間的環(huán)境轉(zhuǎn)換和訪問公用的存儲區(qū)域顯然要比在不同的進(jìn)程之間要快得多。
進(jìn)程模式對多CPU利用率比較高。進(jìn)程模式共享數(shù)據(jù)需要用到共享內(nèi)存,而線程模式數(shù)據(jù)本身就是在進(jìn)程空間內(nèi)都是共享的,不同線程訪問只需要控制好線程之間的同步。
線程模式對資源消耗比較少。所以MySQL能支持遠(yuǎn)比PostgreSQL多的更多的連接。但PostgreSQL中有優(yōu)秀的連接池軟件軟件,如pgbouncer和pgpool,所以通過連接池也可以支持很多的連接。
5)權(quán)限設(shè)置上更加完善
MySQL在權(quán)限系統(tǒng)上比PostgreSQL某些方面更為完善。PostgreSQL只支持對于每一個(gè)用戶在一個(gè)數(shù)據(jù)庫上或一個(gè)數(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)的,但是在很多時(shí)候,這是有用的。
6)存儲引擎插件化機(jī)制
MySQL的存儲引擎插件化機(jī)制,使得它的應(yīng)用場景更加廣泛,比如除了innodb適合事務(wù)處理場景外,myisam適合靜態(tài)數(shù)據(jù)的查詢場景。
7)適應(yīng)24/7運(yùn)行
MySQL可以適應(yīng)24/7運(yùn)行。在絕大多數(shù)情況下,你不需要為MySQL運(yùn)行任何清除程序。PostgreSQL目前仍不完全適應(yīng)24/7運(yùn)行,這是因?yàn)槟惚仨毭扛粢欢螘r(shí)間運(yùn)行一次VACUUM。
8)更加試用于簡單的場景
PostgreSQL只支持堆表,不支持索引組織表,Innodb只支持索引組織表。
索引組織表的優(yōu)勢:表內(nèi)的數(shù)據(jù)就是按索引的方式組織,數(shù)據(jù)是有序的,如果數(shù)據(jù)都是按主鍵來訪問,那么訪問數(shù)據(jù)比較快。而堆表,按主鍵訪問數(shù)據(jù)時(shí),是需要先按主鍵索引找到數(shù)據(jù)的物理位置。
索引組織表的劣勢:索引組織表中上再加其它的索引時(shí),其它的索引記錄的數(shù)據(jù)位置不再是物理位置,而是主鍵值,所以對于索引組織表來說,主鍵的值不能太大,否則占用的空間比較大。
對于索引組織表來說,如果每次在中間插入數(shù)據(jù),可能會導(dǎo)致索引分裂,索引分裂會大大降低插入的性能。所以對于使用innodb來說,我們一般最好讓主鍵是一個(gè)無意義的序列,這樣插入每次都發(fā)生在最后,以避免這個(gè)問題。
由于索引組織表是按一個(gè)索引樹,一般它訪問數(shù)據(jù)塊必須按數(shù)據(jù)塊之間的關(guān)系進(jìn)行訪問,而不是按物理塊的訪問數(shù)據(jù)的,所以當(dāng)做全表掃描時(shí)要比堆表慢很多,這可能在OLTP中不明顯,但在數(shù)據(jù)倉庫的應(yīng)用中可能是一個(gè)問題。
總結(jié)
MySQL從一開始就沒有打算做所有事情,因而它在功能方面有一定的局限性,并不能滿足一些先進(jìn)應(yīng)用程序的要求。MySQL對某些功能(例如引用、事務(wù)、審計(jì)等)的實(shí)現(xiàn)方式使得它與其他的關(guān)系型數(shù)據(jù)庫相比缺少了一些可靠性。對于簡單繁重的讀取操作,使用PostgreSQL可能有點(diǎn)小題大做,同時(shí)性能也比MySQL這樣的同類產(chǎn)品要差。除非你需要絕對的數(shù)據(jù)完整性,ACID遵從性或者設(shè)計(jì)復(fù)雜,否則PostgreSQL對于簡單的場景而言有點(diǎn)多余。
如何你確定只在MySQL和PostgreSQL中進(jìn)行選擇,以下規(guī)則總是有效的:
如果你的操作系統(tǒng)是Windows,你應(yīng)該使用MySQL。
當(dāng)絕對需要可靠性和數(shù)據(jù)完整性的時(shí)候,PostgreSQL是更好的選擇。
如果需要數(shù)據(jù)庫執(zhí)行定制程序,那么可擴(kuò)展的PostgreSQL是更好的選擇。
你的應(yīng)用處理的是地理數(shù)據(jù),由于R-TREES的存在,你應(yīng)該使用PostgreSQL。
如果你對數(shù)據(jù)庫并不了十分了解,甚至不知道事務(wù)、存儲過程等究竟是什么,你應(yīng)該使用MySQL。
PostgreSQL以下簡寫為PG。PG在WIN下跑性能差是因?yàn)镻G在WIN下時(shí),實(shí)際是在一個(gè)UNIX的仿真器上運(yùn)行的,倒不是說WIN真的不行。目前用PG做應(yīng)用必須在UNIX類的系統(tǒng)上搞。至于具體用什么系統(tǒng),我個(gè)人覺得用LINUX簡單點(diǎn),因?yàn)镕REEBSD缺省時(shí)不支持SYSV的系統(tǒng)調(diào)用。所以安裝配置上就復(fù)雜了些。硬件嘛,我看不用什么IBM、SUN、HP或DEC一類的了,那不合使用PG的本意,如果你有錢買那些東西,也就不要用PG了,還是用ORACLE吧。同時(shí),如果你的數(shù)據(jù)庫規(guī)模不是太大(100G以內(nèi))也不一定非用64位的機(jī)器,不過SCSI硬盤是一定要的,能做RAID就更好了,一般為省點(diǎn)錢做個(gè)條帶效果比較明顯。
看調(diào)優(yōu)如何。MySQL相對伯克利大學(xué)的PostgreSQL而言,還是屬于較輕量級的DBMS,PG是 “對象關(guān)系數(shù)據(jù)”目前9.1版支持許多非常有效的概念,比如表繼承、窗函數(shù)、靈活的觸發(fā)器等等,且有許多語言作為拓展。拋開功能,數(shù)據(jù)庫的性能和調(diào)優(yōu)密切相關(guān)。
1. BIRT Project
BIRT報(bào)表是一款非常流行的開源報(bào)表開發(fā)工具。擁有和Dreamweaver一般的操作界面,可以像畫table一樣畫報(bào)表,生成圖片,導(dǎo)出Excel,html分頁樣樣齊全,樣式和script設(shè)置簡單。
2. Pentaho
Pentaho Report Designer是一款所見即所得的開源報(bào)表設(shè)計(jì)工具。在設(shè)計(jì)報(bào)表的時(shí)候,用戶可以隨意拖放和設(shè)置各種報(bào)表的控件,還可以快速方便地設(shè)置報(bào)表的數(shù)據(jù)來源。在報(bào)表的設(shè)計(jì)過程中,用戶可以隨時(shí)預(yù)覽報(bào)表的結(jié)果。
3. OpenRPT
OpenRPT支持各種平臺PostgreSQL的最佳化的圖形化界面的SQL報(bào)表撰寫。
4. OpenReports
OpenReports 提供基于web 的靈活報(bào)表解決方案,支持 PDF,HTML 和XLS 報(bào)表格式,基于WebWork,Hibernate 和 Velocity 開發(fā)完成,并且還提供一個(gè)整合了Tomcat 的OpenReports-Tomcat 文件下載。使用Java進(jìn)行開發(fā),JasperReports 作為報(bào)表引擎。
5. FreeReportBuilder
FreeReportBuilder是一個(gè)Java報(bào)表工具,可以與任何數(shù)據(jù)庫正常工作,只需要有一個(gè)JDBC驅(qū)動程序。
6. JMagallanes
JMagallanes是一個(gè)開源的使用Java/J2EE開發(fā)的Olap和動態(tài)報(bào)表應(yīng)用程序。JMagallanes結(jié)合了靜態(tài)報(bào)表(基于JasperReports),Swing pivot表格(用于OLAP分析),和圖表(基于JFreeChart)。它可從多種數(shù)據(jù)源(如:SQL,Excel,XML和其它)讀取數(shù)據(jù)并可生成多種輸出如:PDF,XML,應(yīng)用程序特殊文件用于將來報(bào)表的脫機(jī)查看。
7. ART – A lightweight reporting solution
ART是一個(gè)輕量級的,多平臺基于web的報(bào)表引擎。定制容易,支持圖形報(bào)表,支持通過插件把結(jié)果導(dǎo)出為各種格式。
8. DataVision
DataVision是一個(gè)用Java編寫的類似于Crystal Reports的報(bào)表工具。它支持多種數(shù)據(jù)源(JDBC, 文本文件) ,輸出格式有HTML, XML, PDF, LaTeX, 逗號或tab分隔的數(shù)據(jù)文件, 和DocBook。它讓你用一個(gè)支持拖放操作的GUI設(shè)計(jì)報(bào)表,報(bào)表描述存儲為XML。
9. The Wabit – Open Source Reporting Tool
Wabit 是一個(gè)跨平臺開源的報(bào)表工具,提供了一個(gè)GUI程序和可嵌入式的接口。
10. Rlib
RLIB是一個(gè)基于XML的報(bào)表引擎,可以生成PDF,HTML,CSV,文本格式
11. JavaEye Reporting Tool – JERT
JERT是一個(gè)開放源代碼的,基于web的,數(shù)據(jù)庫報(bào)表工具,它能夠讓你不需要編程而能創(chuàng)建各種靈活的報(bào)表。
12. iReport
iReport是一個(gè)能夠創(chuàng)建復(fù)雜報(bào)表的開源項(xiàng)目,并且它能調(diào)用JasperReports庫應(yīng)用于任何一種java應(yīng)用程序,使用純Java編寫,擁有非常豐富的圖形界面。
參考:
因?yàn)槭袌錾嫌性S多的SQL管理工具,所以要為SQL項(xiàng)目管理選擇工具是一件有挑戰(zhàn)性的事。為大家推薦23款SQL工具的精選列表,希望朋友們喜歡。其中幾款已經(jīng)在昨天的SQL查詢優(yōu)化工具一文中,做過推薦。
Aqua Data Studio是一個(gè)功能豐富的通用SQL集成開發(fā)環(huán)境(IDE),它使數(shù)據(jù)庫開發(fā)人員,DBA和數(shù)據(jù)/業(yè)務(wù)分析人員能夠從單個(gè)界面開發(fā),管理和分析30多個(gè)平臺的數(shù)據(jù)。
特征:
dbForge Studio for SQL Server是一個(gè)功能強(qiáng)大的IDE,用于SQL Server管理,管理,開發(fā),數(shù)據(jù)報(bào)告,分析等等。執(zhí)行復(fù)雜數(shù)據(jù)庫任務(wù)的SQL開發(fā)人員和DBA可以使用GUI工具來加速幾乎所有數(shù)據(jù)庫體驗(yàn),例如設(shè)計(jì)數(shù)據(jù)庫,編寫SQL代碼,比較數(shù)據(jù)庫,同步模式和數(shù)據(jù),生成有意義的測試數(shù)據(jù)等等。
特征:
dbWatch是一個(gè)完整的數(shù)據(jù)庫監(jiān)控和管理解決方案,適用于SQL Server,Oracle,PostgreSQL,Sybase,MySQL和Azure。專為在大型內(nèi)部部署,混合或云數(shù)據(jù)庫環(huán)境中進(jìn)行主動管理和日常維護(hù)自動化而設(shè)計(jì)。
特征:
Jet Profiler for MySQL是MySQL數(shù)據(jù)庫服務(wù)器的實(shí)時(shí)查詢性能和診斷工具。該工具自2009年開發(fā),非常穩(wěn)定。
特征:
Adminer是一個(gè)用于管理數(shù)據(jù)庫,表,關(guān)系,索引和用戶的SQL管理工具。它支持所有流行的數(shù)據(jù)庫管理系統(tǒng),如MySQL,PostgreSQL,SQLite,MS SQL,Oracle和MongoDB。
特征:
它是一種用于分析微軟SQL Server數(shù)據(jù)庫結(jié)構(gòu)差異的SQL管理工具。它允許比較數(shù)據(jù)庫對象,如表,列,索引,外鍵,模式等。
特征:
EMS SQL Manager允許用戶創(chuàng)建和編輯SQL Server數(shù)據(jù)庫對象,并創(chuàng)建,修改,執(zhí)行和保存SQL查詢。
特征:
它是一個(gè)基于JAVA的數(shù)據(jù)庫管理工具。這種符合JDBC的SQL管理工具允許用戶查看數(shù)據(jù)庫結(jié)構(gòu)并發(fā)出SQL命令。它還支持Firebird,微軟Access,微軟SQL Server,MySQL,Oracle,Sybase等數(shù)據(jù)庫。
特征:
SQLite Database Browser是一個(gè)開源SQL工具,允許用戶創(chuàng)建,設(shè)計(jì)和編輯SQLite數(shù)據(jù)庫文件。它允許用戶顯示由它們和應(yīng)用本身發(fā)出的所有SQL命令的日志。
特征:
DBeaver是一個(gè)面向開發(fā)人員和數(shù)據(jù)庫管理員的開源數(shù)據(jù)庫工具。它支持JDBC兼容的數(shù)據(jù)庫,如MySQL,Oracle,IBM DB2,SQL Server,F(xiàn)irebird,SQLite和Sybase。
特征:
DbVisualizer Free是一個(gè)SQL管理工具。它允許用戶管理各種數(shù)據(jù)庫,包括Oracle,Sybase,SQL Server,MySQL,Informix,H3和SQLite。
特征:
HeidiSQL是另一種可靠的SQL管理工具。它使用流行的MySQL服務(wù)器,微軟SQL數(shù)據(jù)庫和PostgreSQL設(shè)計(jì)。它允許用戶瀏覽和編輯數(shù)據(jù),創(chuàng)建和編輯表,視圖,觸發(fā)器和預(yù)定事件。
特征:
FlySpeed SQL Query是所有數(shù)據(jù)庫用戶和開發(fā)人員的數(shù)據(jù)處理工具。它允許用戶在不熟悉SQL語法的情況下在不同的數(shù)據(jù)庫服務(wù)器上構(gòu)建查詢。
特征:
SQL Diagnostic Manager是Idera開發(fā)的性能監(jiān)控工具。它提供診斷解決方案,幫助用戶評估其SQL Server中的運(yùn)行狀況和性能。
特征:
ManageEngine開發(fā)的免費(fèi)SQL性能監(jiān)控工具。它允許用戶密切關(guān)注SQL Server性能!此工具還可以幫助用戶監(jiān)控SQL Server的性能和可用性。它可以與MS SQL 2012和2014等所有MS SQL版本一起使用。
特征:
ApexSQL Monitor是一個(gè)基于Web的SQL管理應(yīng)用程序。它為監(jiān)控多個(gè)SQL Server實(shí)例提供支持。
特征:
適用于微軟SQL Server的AppDynamics數(shù)據(jù)庫管理產(chǎn)品的一種全面SQL工具。它用于監(jiān)控SQL Server的2000,2005,2008,2012和2014版本。
特征:
Toad是另一個(gè)SQL Server DBMS工具。它通過廣泛的自動化,直觀的工作流程和內(nèi)置的專業(yè)知識最大化了生產(chǎn)力。此SQL管理工具可解決問題,管理更改并提升最高級別的代碼質(zhì)量。
特征:
Zenoss提供ZenPacks來管理微軟SQL Server,MySQL,Oracle數(shù)據(jù)庫和PostgreSQL。每個(gè)ZenPack都具有每個(gè)平臺的特定功能,并提供可用的API來確定應(yīng)監(jiān)控的內(nèi)容。
特征:
Lepide的SQL Server Storage Manager是一個(gè)用于分析SQL Server性能的開源實(shí)用程序。它提供了對存儲空間和性能的完全可視性。
特征:
SQL Server Management Studio Express是一個(gè)用于訪問,管理和開發(fā)SQL所有組件的開源工具。此工具支持SQL Server的大多數(shù)管理任務(wù)。
特征:
SolarWinds Database Performance Analyzer是用于數(shù)據(jù)庫管理的性能監(jiān)視和分析工具。它還找出了瓶頸的原因并降低了數(shù)據(jù)庫操作的總體成本。
特征:
Sequel Pro是一款快速,易用的數(shù)據(jù)庫管理工具,適用于MySQL。此SQL管理工具有助于與數(shù)據(jù)庫進(jìn)行交互。使用此軟件添加新數(shù)據(jù)庫,添加新表,添加新行和任何其他類型的數(shù)據(jù)庫也很容易。
特征: