MySQL中的例項 資料庫的關係

2021-08-14 21:17:40 字數 1686 閱讀 2556

1、mysql是單程序多執行緒(而oracle等是多程序),也就是說mysql例項在系統上表現就是乙個服務程序,即程序(通過多種方法可以建立多例項,再安裝乙個埠號不同的mysql,或者通過workbench來新建乙個埠號不同的伺服器例項等),該架構類似於sql server和windows版本的oracle;

2、mysql例項是執行緒和記憶體組成,例項才是真正用於運算元據庫檔案的(mysql資料庫是由一些列物理檔案組成,類似於frm、myd、myi、ibd結尾的檔案);

3、一般情況下乙個例項操作乙個或多個資料庫(oracle乙個例項對應乙個資料庫);集群情況下多個例項操作乙個或多個資料庫。

在例項啟動的時候mysql會讀取配置檔案,類似於oracle的spfile檔案,不同的是oracle如果找不到引數檔案會啟動失敗,mysql如果找不到配置檔案則會按照預設引數設定啟動例項。

mysql中建立乙個會話(session),不是和具體的資料庫(database)相連線,而是跟某個例項(instance)建立會話(session,每個會話可以使用不同的使用者身份)。

而乙個例項(instance)可以操作多個資料庫,故乙個會話(session,在作業系統概念裡,會話即是執行緒)可以操作乙個例項上的多個資料庫。

簡單描述如下:instance >> database

所以當使用web應用的持久層連線mysql,實際上是連線mysql的例項,所以當spring這種框架操作事務時,出現如下操作時,是可以做到跨庫的事務的:

insert into t1 values (1,』測試』);

insert into db2.t2 values (1,』測試』);

db2是當前資料庫例項中的另乙個資料庫名稱。

連線(connection)是乙個物理的概念,它指的是乙個通過網路建立的客戶端和專有伺服器(dedicated server)或排程器(shared server)的乙個網路連線。

會話(session)是乙個邏輯的概念,它是存在於例項(instance)中。

建立乙個連線(connection)實際上是在某個例項(instance,或者說是程序)中建立乙個或多個執行緒(即多個session)。

關係:

connect就好比你接通對方,這時,connect就建立了,有沒有通話,不管。雙方進行通話,則session建立了,如果換人,則新的session建立,原session結束,類似的,可以在同乙個connect上進行多個會話。最後,掛機,connect結束。

比如:使用客端連線資料庫,這樣你就可以執行很多個事務了

在資料庫裡的事務,如果在執行的sql都是由會話發起的,哪怕是自動執行的job也是由系統會話發起的

比如rman備份,是可以建立多個執行緒可加快備份速度

而乙個執行緒,在沒結束當前事務是無法釋放資源來執行第二個事務

事務(transaction):簡單理解就是乙個業務需求的最小處理單位。

會話(session):可以包含n個事務

乙個會話中可以由多個事務。執行緒是作業系統概念。

MySQL中的例項 資料庫的關係

1 mysql是單程序多執行緒 而oracle等是多程序 也就是說mysql例項在系統上表現就是乙個服務程序,即程序 通過多種方法可以建立多例項,再安裝乙個埠號不同的mysql,或者通過workbench來新建乙個埠號不同的伺服器例項等 該架構類似於sql server和windows版本的orac...

例項 資料庫

例項 就是管理相關庫的記憶體結構的名字 由sga pga 伺服器程序 使用者程序 後台程序等組成 資料庫 就是實際的磁碟上的文件 資料文件 日誌文件 控制文件等 負責儲存資料,但由對應的例項來操作他的資料 服務名 就是對外公開的名稱,為網路監聽服務 其實,在我們傳統的概念裡,資料庫是個統稱的名字,在...

例項 資料庫

例項 就是管理相關庫的記憶體結構的名字 由sga pga 伺服器程序 使用者程序 後台程序等組成 資料庫 就是實際的磁碟上的文件 資料文件 日誌文件 控制文件等 負責儲存資料,但由對應的例項來操作他的資料 服務名 就是對外公開的名稱,為網路監聽服務 其實,在我們傳統的概念裡,資料庫是個統稱的名字,在...