MySQL體系架構(一)

1.1.MySQL的分支與變種

MySQL變種有好幾個,主要有三個久經考驗的主流變種:Percona Server,MariaDB和 Drizzle。它們都有活躍的用戶社區和一些商業支持,均由獨立的服務供應商支持。同時還有幾個優秀的開源關系數據庫,值得我們了解一下。

1.1.1.Drizzle

Drizzle是真正的MySQL分支,而且是完全開源的產品,而非只是個變種或增強版本。它并不與MySQL兼容不能簡單地將MySQL后端替換為Drizzle。

Drizzle與MySQL有很大差別,進行了一些重大更改,甚至SQL語法的變化都非常大,設計目標之一是提供一種出色的解決方案來解決高可用性問題。在實現上,Drizzle清除了一些表現不佳和不必要的功能,將很多代碼重寫,對它們進行了優化,甚至將所用語言從C換成了C++。

此外,Drizzle另一個設計目標是能很好的適應具有大量內容的多核服務器、運行Linux的64位機器、云計算中使用的服務器、托管網站的服務器和每分鐘接收數以萬計點擊率的服務器并且大幅度的削減服務器成本。

1.1.2.MariaDB

在Sun收購MySQL后,Monty Widenius,這位MySQL的創建者,因不認同MySQL開發流程而離開Sun。他成立了Monty程序公司,創立了MariaDB。MariaDB的目標是社區開發,Bug修復和許多的新特性實際上,可以將MariaDB視為MySQL的擴展集,它不僅提供MySQL提供的所有功能,還提供其他功能。MariaDB是原版MySQL的超集,因此已有的系統不需要任何修改就可以運行。

諸如Google,Facebook、維基百科等公司或者網站所使用了MariaDB。不過Monty公司不是以贏利為目的,而是由產品驅動的,這可能會帶來問題,因為沒有贏利的公司不一定能長久維持下去。

1.1.3.Percona Server

由領先的MySQL咨詢公司Percona發布,Percona公司的口號就是“The Database Performance Experts”,Percona的創始人也就是《高性能MySQL》書的作者。

Percona Server是個與MySQL向后兼容的替代品,它盡可能不改變SQL語法、客戶端/服務器協議和磁盤上的文件格式。任何運行在MySQL上的都可以運行在Percona Server上而不需要修改。切換到Percona Server只需要關閉MySQL和啟動PerconaServer,不需要導出和重新導入數據。

Percona Server有三個主要的目標:透明,增加允許用戶更緊密地查看服務器內部信息和行為的方法。比如慢查詢日志中特別增加的詳細信息;性能,Percona Server包含許多性能和可擴展性方面的改進,還加強了性能的可預測性和穩定性。其中主要集中于InnoDB;操作靈活性,Percona Server使操作人員和系統管理員在讓MySQL作為架構的一部分而可靠并穩定運行時提供了很多便利。

一般來說,Percona Server中的許多特性會在后來的標準MySQL中出現。

國內公司阿里內部就運行了上千個Percona Server的實例。

1.2.MySQL的替代

1.2.1.Postgre SQL

PostgreSQL稱自己是世界上最先進的開源數據庫,同時也是個一專多長的全棧數據庫。最初是1985年在加利福尼亞大學伯克利分校開發的。

PostgreSQL 的穩定性極強,在崩潰、斷電之類的災難場景下依然可以保證數據的正確;在高并發讀寫,負載逼近極限下,PostgreSQL的性能指標仍可以維持雙曲線甚至對數曲線,到頂峰之后不再下降,表現的非常穩定,而 MySQL 明顯出現一個波峰后下滑;

PostgreSQL多年來在GIS(地理信息)領域處于優勢地位,因為它有豐富的幾何類型,實際上不止幾何類型,PostgreSQL有大量字典、數組、bitmap 等數據類型,相比之下mysql就差很多。所以總的來說,PostgreSQL更學術化一些,在絕對需要可靠性和數據完整性的時候,PostgreSQL是更好的選擇。但是從商業支持、文檔資料、易用性,第三方支持來說,MySQL無疑更好些。

1.2.2.SQLite

SQLite是世界上部署最廣泛的數據庫引擎,為物聯網(IoT)下的數據庫首選,并且是手機,PDA,甚至MP3播放器的下的首選。SQLite代碼占用空間小,并且不需要數據庫管理員的維護。SQLite沒有單獨的服務器進程,提供的事務也基本符合ACID。當然,簡單也就意味著功能和性能受限。

2.MySql基礎

2.1.MySQL體系架構

image.png

可以看出MySQL是由連接池、管理工具和服務、SQL接口、解析器、優化器、緩存、存儲引擎、文件系統組成。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/76254.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/76254.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/76254.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【項目實訓項目博客】prompt初版實踐

通過對camel技術的理解,我們向其中添加了市場營銷角色的prompt 初版設計如下: chatchainconfig.json { "chain": [ { "phase": "DemandAnalysis", "phaseType": "SimplePhase", "max_turn_step…

[Bond的雜貨鋪] CKS 證書也到貨咯

最近比較忙,忘記寫Blog了:) 一年前黑五去官網蹲了一手Cyber Monday,買了英文考試券bundle,當時只考了cka,后來cks差點都忘記了。將近一年后,無意中收到官方的提醒郵件,說考試券本已過期&#x…

【回眸】Linux 內核 (十五) 之 多線程編程 上

前言 進程和線程 區別 線程API 1.創建線程 2.線程退出 3.線程等待 4.線程脫離 5. 線程ID獲取及比較 6.創建及銷毀互斥鎖 7.創建及銷毀條件變量 8. 等待 9.觸發 多線程編程 后記 前言 高產的幾天。 進程和線程 區別 進程——資源分配的最小單位,線…

127.0.0.1本地環回地址(Loopback Address)

127.0.0.1 是計算機網絡中的一個特殊IPv4地址,稱為本地環回地址(Loopback Address),主要用于以下用途: 1. 基本定義 本地主機(Localhost):該地址始終指向當前正在使用的計算機本身&a…

S7-1200 PLC熱電偶和熱電阻模擬量模塊

熱電偶和熱電阻模擬量模塊 S7-1200 PLC有專用用于對溫度進行采集的熱電偶模塊SM1231 TC和SM 1231RTD。熱電偶模塊有4AI和8AI兩種,下面以SM1231 TC 4AI為例看一下接線圖。 該模塊一共有4個通道,每個通道有兩個接線端子,比如0,0-。…

深度了解向量引論

今天去研究了一個基本數學原理 這個其實需要證明 今天推導了一下這個公式,感覺收獲挺大 下面是手工推導過程

Feign修仙指南:聲明式HTTP請求的優雅之道

各位在微服務世界摸爬滾打的道友們!今天要解鎖的是Spring Cloud的絕世神通——Feign!這貨堪稱HTTP界的"言出法隨",只需定義接口,就能自動生成HTTP請求代碼!從此告別手動拼裝URL的苦日子,讓你的代…

UDP學習筆記(四)UDP 為什么大小不能超過 64KB?

🌐 UDP 為什么大小不能超過 64KB?TCP 有這個限制嗎? 在進行網絡編程或者調試網絡協議時,我們常常會看到一個說法: “UDP 最大只能發送 64KB 數據。” 這到底是怎么回事?這 64KB 是怎么來的?TCP…

LabVIEW 中串口設備與采集卡的同步精度

在 LabVIEW 項目開發中,常涉及多種設備協同工作,如通過串口設備采集溫度,利用采集卡(如 NI 6251)采集壓力。此時,設備間的同步精度至關重要,它直接影響系統數據的準確性與可靠性。下面&#xff…

DP_AUX輔助通道介紹

DisplayPort(簡稱DP)是一個由PC及芯片制造商聯盟開發,視頻電子標準協會(VESA)標準化的數字式視頻接口標準。該接口免認證、免授權金,主要用于視頻源與顯示器等設備的連接,并也支持攜帶音頻、USB…

[GESP202312 五級] 平均分配

文章目錄 題目描述輸入格式輸出格式輸入輸出樣例 #1輸入 #1輸出 #1 輸入輸出樣例 #2輸入 #2輸出 #2 提交鏈接提示解析參考代碼 題目描述 小楊認為,所有大于等于 a a a 的完全平方數都是他的超級幸運數。 小楊還認為,所有超級幸運數的倍數都是他的幸運…

[Mysql]buffersize修改

1、找到my.cnf文件位置 ps -ef|grep mysqld 2、編輯my.cnf cd /etc/my.cnf.d vim my.cnf 一般修改為內存的50%~70% 3、重啟服務 systemctl restart mysqld

清晰易懂的 Apollo 配置中心安裝與使用教程

Apollo 是攜程開源的分布式配置管理平臺,支持配置實時推送、版本管理、權限控制等功能。本教程將手把手教你完成 Apollo 核心組件安裝、基礎配置管理及避坑指南,助你快速掌握企業級配置管理能力。 一、環境準備(關鍵依賴) 1. 基礎…

PyTorch池化層詳解:原理、實現與示例

池化層(Pooling Layer)是卷積神經網絡中的重要組成部分,主要用于降低特征圖的空間維度、減少計算量并增強模型的平移不變性。本文將通過PyTorch代碼演示池化層的實現原理,并詳細講解最大池化、平均池化、填充(Padding&…

如何構建并優化提示詞?

提示詞是一個小白最容易上手大模型的方式,提示詞就是你告訴大模型應該如何去完成一項工作的系統性的命令,所以寫一個好的提示詞是比較關鍵的,那么如何寫好一個提示詞呢? 要寫好提示詞,其實就像我們要把一些命令清晰地傳…

面向大模型的開發框架LangChain

這篇文章會帶給你 如何使用 LangChain:一套在大模型能力上封裝的工具框架如何用幾行代碼實現一個復雜的 AI 應用面向大模型的流程開發的過程抽象 文章目錄 這篇文章會帶給你寫在前面LangChain 的核心組件文檔(以 Python 版為例)模型 I/O 封裝…

【藍橋杯】動態規劃:線性動態規劃

1. 最長上升子序列(LIS) 1.1. 題目 想象你有一排數字,比如:3, 1, 2, 1, 8, 5, 6 你要從中挑出一些數字,這些數字要滿足兩個條件: 你挑的數字的順序要和原來序列中的順序一致(不能打亂順序) 你挑的數字要一個比一個大(嚴格遞增) 問:最多能挑出多少個這樣的數字? …

vue2和vue3的主要區別

一、性能優化與響應式系統 性能優化: Vue2:性能較好,但在大型應用中,當數據變化頻繁時可能出現性能瓶頸。它使用虛擬DOM來高效地進行DOM操作,并通過多種技術手段如懶加載、異步組件、樹形抖動等優化性能。 Vue3&…

Python: 實現數據可視化分析系統

后端基于Python 開源的 Web 框架 Flask,前端頁面采用 LayUI 框架以及 Echarts 圖表,數據庫為sqlite。系統的功能模塊分為數據采集和存儲模塊、數據處理和分析模塊、可視化展示模塊和系統管理模塊。情感分析方面使用LDA等主題建模技術,結合領域…

深度學習總結(3)

數據批量的概念 通常來說,深度學習中所有數據張量的第一個軸(也就是軸0,因為索引從0開始)都是樣本軸[samples axis,有時也叫樣本維度(samples dimension)?]?。深度學習模型不會一次性處理整個…