特性 MySQL PostgreSQL
實例 通過執行 MySQL 命令(mysqld)啟動實例。一個實例可以管理一個或多個資料庫。一台伺服器可以運行多個 mysqld 實例。一個實例管理器可以監視 mysqld 的各個實例。
通過執行 Postmaster 進程(pg_ctl)啟動實例。一個實例可以管理一個或多個資料庫,這些資料庫組成一個集群。集群是磁碟上的一個區域,這個區域在安裝時初始化並由一個目錄組成,所有數據都存儲在這個目錄中。使用 initdb 創建第一個資料庫。一台機器上可以啟動多個實例。
資料庫 資料庫是命名的對象集合,是與實例中的其他資料庫分離的實體。一個 MySQL 實例中的所有資料庫共享同一個系統編目。 資料庫是命名的對象集合,每個資料庫是與其他資料庫分離的實體。每個資料庫有自己的系統編目,但是所有資料庫共享 pg_databases。
數據緩沖區 通過 innodb_buffer_pool_size 配置參數設置數據緩沖區。這個參數是內存緩沖區的位元組數,InnoDB 使用這個緩沖區來緩存表的數據和索引。在專用的資料庫伺服器上,這個參數最高可以設置為機器物理內存量的 80%。 Shared_buffers 緩存。在默認情況下分配 64 個緩沖區。默認的塊大小是 8K。可以通過設置 postgresql.conf 文件中的 shared_buffers 參數來更新緩沖區緩存。
資料庫連接 客戶機使用 CONNECT 或 USE 語句連接資料庫,這時要指定資料庫名,還可以指定用戶 id 和密碼。使用角色管理資料庫中的用戶和用戶組。 客戶機使用 connect 語句連接資料庫,這時要指定資料庫名,還可以指定用戶 id 和密碼。使用角色管理資料庫中的用戶和用戶組。
身份驗證 MySQL 在資料庫級管理身份驗證。 基本只支持密碼認證。 PostgreSQL 支持豐富的認證方法:信任認證、口令認證、Kerberos 認證、基於 Ident 的認證、LDAP 認證、PAM 認證
加密 可以在表級指定密碼來對數據進行加密。還可以使用 AES_ENCRYPT 和 AES_DECRYPT 函數對列數據進行加密和解密。可以通過 SSL 連接實現網路加密。 可以使用 pgcrypto 庫中的函數對列進行加密/解密。可以通過 SSL 連接實現網路加密。
審計 可以對 querylog 執行 grep。 可以在表上使用 PL/pgSQL 觸發器來進行審計。
查詢解釋 使用 EXPLAIN 命令查看查詢的解釋計劃。 使用 EXPLAIN 命令查看查詢的解釋計劃。
備份、恢復和日誌 InnoDB 使用寫前(write-ahead)日誌記錄。支持在線和離線完全備份以及崩潰和事務恢復。需要第三方軟體才能支持熱備份。 在數據目錄的一個子目錄中維護寫前日誌。支持在線和離線完全備份以及崩潰、時間點和事務恢復。 可以支持熱備份。
JDBC 驅動程序 可以從 參考資料 下載 JDBC 驅動程序。 可以從 參考資料 下載 JDBC 驅動程序。
表類型 取決於存儲引擎。例如,NDB 存儲引擎支持分區表,內存引擎支持內存表。 支持臨時表、常規表以及范圍和列表類型的分區表。不支持哈希分區表。 由於PostgreSQL的表分區是通過表繼承和規則系統完成了,所以可以實現更復雜的分區方式。
索引類型 取決於存儲引擎。MyISAM:BTREE,InnoDB:BTREE。 支持 B-樹、哈希、R-樹和 Gist 索引。
約束 支持主鍵、外鍵、惟一和非空約束。對檢查約束進行解析,但是不強制實施。 支持主鍵、外鍵、惟一、非空和檢查約束。
存儲過程和用戶定義函數 支持 CREATE PROCEDURE 和 CREATE FUNCTION 語句。存儲過程可以用 SQL 和 C++ 編寫。用戶定義函數可以用 SQL、C 和 C++ 編寫。 沒有單獨的存儲過程,都是通過函數實現的。用戶定義函數可以用 PL/pgSQL(專用的過程語言)、PL/Tcl、PL/Perl、PL/Python 、SQL 和 C 編寫。
觸發器 支持行前觸發器、行後觸發器和語句觸發器,觸發器語句用過程語言復合語句編寫。 支持行前觸發器、行後觸發器和語句觸發器,觸發器過程用 C 編寫。
系統配置文件 my.conf Postgresql.conf
資料庫配置 my.conf Postgresql.conf
客戶機連接文件 my.conf pg_hba.conf
XML 支持 有限的 XML 支持。 有限的 XML 支持。
數據訪問和管理伺服器 OPTIMIZE TABLE —— 回收未使用的空間並消除數據文件的碎片
myisamchk -analyze —— 更新查詢優化器所使用的統計數據(MyISAM 存儲引擎)
mysql —— 命令行工具
MySQL Administrator —— 客戶機 GUI 工具 Vacuum —— 回收未使用的空間
Analyze —— 更新查詢優化器所使用的統計數據
psql —— 命令行工具
pgAdmin —— 客戶機 GUI 工具
並發控制 支持表級和行級鎖。InnoDB 存儲引擎支持 READ_COMMITTED、READ_UNCOMMITTED、REPEATABLE_READ 和 SERIALIZABLE。使用 SET TRANSACTION ISOLATION LEVEL 語句在事務級設置隔離級別。 支持表級和行級鎖。支持的 ANSI 隔離級別是 Read Committed(默認 —— 能看到查詢啟動時資料庫的快照)和 Serialization(與 Repeatable Read 相似 —— 只能看到在事務啟動之前提交的結果)。使用 SET TRANSACTION 語句在事務級設置隔離級別。使用 SET SESSION 在會話級進行設置。
MySQL相對於PostgreSQL的劣勢:
MySQL
PostgreSQL
最重要的引擎InnoDB很早就由Oracle公司控制。目前整個MySQL資料庫都由Oracle控制。
BSD協議,沒有被大公司壟斷。
對復雜查詢的處理較弱,查詢優化器不夠成熟
很強大的查詢優化器,支持很復雜的查詢處理。
只有一種表連接類型:嵌套循環連接(nested-loop),不支持排序-合並連接(sort-merge join)與散列連接(hash join)。
❷ 請問使用JDBC 和JNDI連接資料庫哪個更有優勢
jdbc就是直接連接資料庫,而jndi一般是在伺服器上配置了資料庫連接池後採用的一種方便用戶查找的方法。如果自己學習就用jdbc,但是如果做項目的話一定記得配置資料庫連接池並使用jndi,這樣快一些,也更專業一些。
❸ java的3種資料庫連接池用哪個好
1
dbcp
dbcp可能是使用最多的開源連接池,原因大概是因為配置方便,而且很多開源和tomcat應用例子都是使用的這個連接池吧。
這個連接池可以設置最大和最小連接,連接等待時間等,基本功能都有。這個連接池的配置參見附件壓縮包中的:dbcp.xml
使用評價:在具體項目應用中,發現此連接池的持續運行的穩定性還是可以,不過速度稍慢,在大並發量的壓力下穩定性
有所下降,此外不提供連接池監控
2
c3p0
c3p0是另外一個開源的連接池,在業界也是比較有名的,這個連接池可以設置最大和最小連接,連接等待時間等,基本功能都有。
這個連接池的配置參見附件壓縮包中的:c3p0.xml。
使用評價:在具體項目應用中,發現此連接池的持續運行的穩定性相當不錯,在大並發量的壓力下穩定性也有一定保證,
此外不提供連接池監控。
3
proxool
proxool這個連接池可能用到的人比較少,但也有一定知名度,這個連接池可以設置最大和最小連接,連接等待時間等,基本功能都有。
這個連接池的配置參見附件壓縮包中的:proxool.xml。
使用評價:在具體項目應用中,發現此連接池的持續運行的穩定性有一定問題,有一個需要長時間跑批的任務場景任務,同樣的代碼
❹ +連接到新數據源.odc
這是個沒用的文件的
❺ 想用組態王連接資料庫,建的這個資料庫最好是ACCESS還是SQL呢或者是學哪個會比較方便比較簡單呢
ACCESS比較容易學,簡單些
❻ MySQL資料庫哪個好
您好,不知道您問的是MYSQL資料庫的連接工具哪個好,還是MYSQL的版本。
就一一進行解答吧。
1、MYSQL版本
MySQL Community Server 社區版本,開源免費,但不提供官方技術支持。
MySQL Enterprise Edition 企業版本,需付費,可以試用30天。
MySQL Cluster 集群版,開源免費。可將幾個MySQL Server封裝成一個Server。
MySQL Cluster CGE 高級集群版,需付費。
MySQL Workbench(GUI TOOL)一款專為MySQL設計的ER/資料庫建模工具。它是著名的資料庫設計工具DBDesigner4的繼任者。MySQL Workbench又分為兩個版本,分別是社區版(MySQL Workbench OSS)、商用版(MySQL Workbench SE)。
MySQL Community Server 是開源免費的,這也是我們通常用的MySQL的版本。根據不同的操作系統平台細分為多個版本
說明:
選擇Generally Available(GA)Release 去下載。GA 是指軟體的通用版本,一般指正式發布的版本。
「essentials」 是指精簡版,不包含 embedded server and benchmark suite,有自動安裝程序和配置向導,沒有MySQL文檔。
「noinstall」 是指非安裝的壓縮包的。包含 embedded server and benchmark suite,沒有自動安裝程序和配置向導,需手動安裝配置,有MySQL文檔。
mysql-essential-5.1.60-win32.msi 是精簡版,如果只需要mysql服務,就選擇此版本。
mysql-5.1.60-win32.msi 是完整版,包含安裝程序和配置向導,有MySQL文檔。
mysql-noinstall-5.1.60-win32.zip 是非安裝的zip壓縮包,沒有自動安裝程序和配置向導,需手動安裝配置,有MySQL文檔。
mysql-5.1.60.zip 是用於windows的Mysql源碼壓縮包
帶 "winx64" 的則是對應的64位版本,在64位操作系統下使用。
一般做後台開發,我們就下載mysql-essential-5.1.60-win32.msi 即可。
2、連接工具 我自己是使用navicat
navicat for mysql
Navicat是MySQL和MariaDB資料庫管理與開發理想的解決方案。它可同時在一個應用程序上連接MySQL和MariaDB資料庫。這種兼容前端為資料庫提供了一個直觀而強大的圖形界面管理、開發和維護功能,為初級MySQL和MariaDB開發人員和專業開發人員都提供了一組全面的開發工具。
SQLyog
SQLyog是一款功能最強大的MySQL管理工具,它綜合了MySQL工作台、php MyAdmin和其他MySQL前端及MySQL GUI工具的特點。該款應用程序可以同時連接任意數量級的MySQL伺服器,用於測試和生產。所有流程僅需登錄MySQL root以收集數據,用戶無需安裝在MySQL伺服器上。
如果以上幾點都不是您想要的,可以補充問題。
❼ 很初級的一個問題。。PHP中連接資料庫,連接mysql和連接oracle的有什麼區別么
$link=mysql_connect("localhost","root","123456") ;
mysql_select_db("database_name" , $link );
$query = mysql_query( "select * from users", $link );
while( $row = mysql_fetch_assoc( $query ) )
{
print_r( $row );
}
oracle在php中要用oci連接
<?php
$conn = oci_connect('hr', 'welcome', 'localhost/XE');
if (!$conn) {
$e = oci_error();
trigger_error(htmlentities($e['message'], ENT_QUOTES), E_USER_ERROR);
}
$stid = oci_parse($conn, 'SELECT department_id, department_name FROM departments');
oci_execute($stid);
while (($row = oci_fetch_array($stid, OCI_BOTH))) {
// Use the uppercase column names for the associative array indices
echo $row[0] . " and " . $row['DEPARTMENT_ID'] . " are the same<br>\n";
echo $row[1] . " and " . $row['DEPARTMENT_NAME'] . " are the same<br>\n";
}
oci_free_statement($stid);
oci_close($conn);
?>
❽ JAVA連接 資料庫,哪個資料庫好一些
沒有這樣的事情,因為它真的很好,推薦MySQL或MariaDB的,有沒有版權糾紛,Oracle生產環境中,你可以用它(收費)
❾ http://v.youku.com/v_show/id_XNzgyMzY1NTYw.htmlx&sharefrom=android
多看,看的時候注意細節,掌握動作要領,多揣摩揣摩,然後反復練習。