mysql核心分析文件 mysql 核心分析

2021-10-22 06:23:06 字數 987 閱讀 7145

mysql從功能上來講,並不完善,適用於oltp,不適用於olap,在開源資料庫而言,對於重要的資料儲存的話,而是建議採用postgresql

下面把mysql和postgresql從核心級做一些對比分析,找出mysql快,但功能不足的方面.估計要很長時間才能寫完,每天看到哪寫到哪.

1.mysql是執行緒級別的,postgresql是程序級別的,從作業系統方面講,mysql速度快

2.mysql不像關係型資料庫有專用的系統表,它的系統表主要就是host,user,plugin等少數幾個,表結構也是儲存在frm中,沒有像postgresql中有pg_class,pg_database,pg_attribute,pg_view等這樣專有的系統表,mysql建立資料庫也只是建立乙個以資料庫名字為命名的資料夾,安全性也差,

3.封鎖的話,mysql裡面大量採用了全域性封鎖,效率肯定低,只要有乙個查詢執行時間長,將大大影響系統整體效能,所以只適用於oltp,另外它是一次性獲得所有封鎖的兩階段封鎖協議,也沒有死鎖檢測機制.

4.日誌方面有兩種,一種是statement,也就是只記錄執行的語句,這樣是速度快,但是恢復起來肯定慢,而且它的文件中說,這種日誌方法並不保證一致性,另一種是新引進的row的記當方法,也就是記錄元組級的修改,這就是postgresql比較相近,但是有沒有像pg的crc校驗還需要看原始碼.

5.cluster這個mysql只有本系統提供的,而postgresql有pgcluster,pgplool等多種選擇,

6.事務,

7.記憶體緩衝池

8.索引

9.replication:mysql有兩種,一種是基於statement的,這種實現比較簡單,但是需要全域性鎖,另一方面於對一些特定函式如date,random等主從可能結果不一樣,而且主結點解析,重寫之後,副結點還要執行相同的過程.postgresql是通過截on_insert,on_update,on_delete三個函式實現的,主副之間傳遞的是內部結構,副結點得到之後可以直接儲存.mysql新的根據row方式儲存的,應和pg的機制差不多.

Mysq篇 了解Mysql(一)

in關鍵字和exists關鍵字select from a where a.idin select id from b 對外表a使用索引效率高,建議a為大表。select from a whereexists select from b where a.id b.id 對內表b使用索引效率高,建議b為...

mysql安裝文件 mysql安裝文件

linux下使用yum安裝mysql 安裝的mysql版本為mysql55 mysql server.x86 64 1 安裝 檢視有沒有安裝過 yum list installed mysql rpm qa grep mysql 檢視有沒有安裝包 yum list mysql 安裝mysql客戶端 ...

mysql 密碼清楚 linux清除MYSQL密碼

1.先以root使用者登入系統 2.關閉mysql服務或程序 service d stop killall mysqld 3.特權啟動mysql usr local mysql bin mysqld safe skip grant tables or mysqld safe skip grant t...