資料庫例項和資料庫關係
敗,MySQL如果找不到配置檔案則會按照預設引數設定啟動例項。
—————————————————————————————————————————————————————————————————
mysql中database、instance、session:
mysql中建立一個會話,不是和具體的資料庫相連線,而是跟某個instance建立會話(每個會話可以使用不同的使用者身份)。
而一個例項可以操作多個數據庫,故一個會話(在作業系統概念裡,會話即是執行緒)可以操作一個例項上的多個數據庫。
簡單描述如下:instance >> database
—————————————————————————————————————————————————————————————————
connection和session的定義和區別:
1.連線(connection)是一個物理的概念,它指的是一個通過網路建立的客戶端和專有伺服器(Dedicated Server)或排程器(Shared
Server)的一個網路連線。
2.會話(session)是一個邏輯的概念,它是存在於例項中。
注:建立一個連線(connection)實際上是在某個例項(instance,或者說是程序)中建立一個或多個執行緒。
兩者關係:
1、一個連線可以擁有多個會話也可以沒有會話(實際上,一條連線上的各個會話可以使用不同的使用者身份),同一個連線上的不同會話之間不會相互影響。
- 2、 兩個會話之間的影響,體現在鎖和鎖存,即對相同資源的操作(物件定義或資料塊)或請求(CPU/記憶體),它們的處理一般是按佇列來處理的,前面的沒有處理好,後面的就要等待。如果以打電話來比喻:connect就好比你接通對方,這時,connect就建立了,有沒有通話,不管。雙方進行通話,則session建立了,如果換人,則新的session建立,原session結束,類似的,可以在同一個connect上進行多個會話。最後,掛機,connect結束。
1、會話可以建立多個事務
比如:使用客端連線資料庫,這樣你就可以執行很多個事務了
2、一個事務只能由一個會話產生
在資料庫裡的事務,如果在執行的SQL都是由會話發起的,哪怕是自動執行的JOB也是由系統會話發起的
3、一個事務可能會產生一個或多個執行緒
比如RMAN備份,是可以建立多個執行緒可加快備份速度
4、一個執行緒在同一時間內只能執行一個事務
而一個執行緒,在沒結束當前事務是無法釋放資源來執行第二個事務
—————————————————————————————————————————————————————————
事務、會話與執行緒的關係和區別:
事務:簡單理解局勢一個業務需求的最小處理單位。