Linux下徹底卸載mysql詳解,msql

SQL與MySQL有什么區別?

Linux下徹底卸載mysql詳解,msql


SQL全稱是結構化查詢語言,MySQL是一個關系型數據庫,是一個軟件,這是兩者最根本的區別,就相當于c與vc6.0的區別,一個是語言,一個是基于這種語言實現的的軟件 。聯系的話,MySQL是基于SQL標準實現的一個數據庫管理軟件,你可以在上面寫SQL語句,練習SQL,基本的增刪改查,觸發器,存儲過程等,當然,你也可以使用其他數據庫管理軟件,像SQL Server,Oracle等,這個因人、實際的項目而異,就看你的選擇了,都可以在上面練習SQL 。
PostgreSQL與MySQL相比,優勢何在?
Linux下徹底卸載mysql詳解,msql


PostgreSQL類似于Oracle的多進程框架,可以支持高并發的應用場景 。如果把Oracle DBA轉到PostgreSQL數據庫上是比較容易的,畢竟PostgreSQL數據庫與Oracle數據庫很相似 。PostgreSQL幾乎支持所有的SQL標準,支持類型相當豐富 。PostgreSQL數據庫的源代碼要比MySQL數據庫的源代碼更容易讀懂,如果團隊的C語言能力比較強的話,就可以在PostgreSQL數據庫上做開發,比方說實現類似greenplum的系統,這樣也能與現在的分布式趨勢接軌 。
為了說明PostgreSQL的功能,下面從“從Oracle遷移到Mysql之前必須知道的50件事”簡要對比一下PostgreSQL數據庫與MySQL數據庫之間的差異 。從Oracle遷移到Mysql會面對的50件難事1、對子查詢的優化表現不佳 。(PostgreSQL可解決)2、 對復雜查詢的處理較弱 。(PostgreSQL可解決)3、 查詢優化器不夠成熟 。
(PostgreSQL可解決)PostgreSQL完全支持SQL-92標準,對SQL的支持也很全面,可以支持復雜的SQL查詢 。4、 性能優化工具與度量信息不足 。(PostgreSQL可解決)PostgreSQL提供了執行計劃和詳細的cost值,可以方便看到SQL的執行效率 。5、 審計功能相對較弱 。6、 安全功能不成熟,沒有用戶組與角色的概念,沒有回收權限的功能(僅可以授予權限) 。
當一個用戶從不同的主機/網絡以同樣的用戶名/密碼登錄之后,可能被當作完全不同的用戶來處理,沒有類似于Oracle的內置的加密功能 。7、 身份驗證功能是完全內置的,不支持LDAP、Active Directory或其它類似的外部身份驗證功能 。8、 Mysql Cluster可能與你想象的有較大差異 。9、 存儲過程與觸發器的功能有限 。
(PostgreSQL可解決)PostgreSQL提供了完善的存儲過程和觸發器支持 。10、 垂直擴展性較弱 。11、 不支持MPP(大規模并行處理) 。(PostgreSQL可解決)PostgreSQL是類似Oracle數據庫的多進程架構,而不像MySQL是多線程的架構,所以能支持MPP 。12、 支持SMP(對稱多處理器),但是如果每個處理器超過4或8個核(core)時,Mysql的擴展性表現較差 。
13、 對于時間、日期、間隔等時間類型沒有秒以下級別的存儲類型 。14、 可用來編寫存儲過程、觸發器、計劃事件以及存儲函數的語言功能較弱 。15、 沒有基于回滾(roll-back)的恢復功能,只有前滾(roll-forward)的恢復功能 。16、 不支持快照功能 。17、 不支持數據庫鏈(database link) 。
有一種叫做Federated的存儲引擎可以作為一個中轉將查詢語句傳遞到遠程服務器的一個表上,不過,它功能很粗糙并且漏洞很多 。18、 數據完整性檢查非常薄弱,即使是基本的完整性約束,也往往不能執行 。(PostgreSQL可解決)PostgreSQL提供完善的數據完整性檢查機制,支持外鍵 。19、 優化查詢語句執行計劃的優化器提示非常少 。
20、 只有一種表連接類型:嵌套循環連接(nested-loop),不支持排序-合并連接(sort-merge join)與散列連接(hash join) 。(PostgreSQL可解決)PostgreSQL則支持這些表連接類型 。21、 大部分查詢只能使用表上的單一索引;在某些情況下,會存在使用多個索引的查詢,但是查詢優化器通常會低估其成本,它們常常比表掃描還要慢 。

推薦閱讀