云數據庫服務(參考自騰訊云計算工程師認證課程)更新中......

數據庫基礎介紹

面臨的挑戰:

數據庫系統架構:
數據庫DB、數據庫管理系統DBMS(負責數據庫的搭建、使用和維護的系統軟件,通過組織、索引、查詢、修改數據庫文件、實現數據定義、組織、存儲、管理以及數據庫操作、運行和維護等主要功能)、數據庫應用程序DBAP、數據庫管理員DBA。
存儲管理(負責數據的物理存儲和管理)、數據庫管理(負責數據的邏輯管理和操作)、應用管理(負責應用程序與數據庫的交互)、用戶管理(負責用戶的權限管理的數據訪問控制)

數據庫發展史:人工管理——文件系統——數據庫系統。

NoSQL數據庫通過非關系模型來管理數據,適用于管理大規模、非結構化數據,具有高擴展性和高性能的特點;NewSQL數據庫則結合了關系型數據庫和NoSQL數據庫的優點,提供高性能和高擴展性的同時,仍然支持SQL查詢。

面臨的挑戰:
數據類型多樣性和異構處理能力;高度的可擴展性和可伸縮性;時效性;大數據時代;
5V特性:Volume數量、Variety多樣性、Value價值、Velocity速度、Veracity真實性

數據庫類型:

結構化數據:指可以使用關系型數據庫表進行存儲的數據。數據格式固定、利于存儲和管理。
非結構化數據:數據格式不固定、內容多樣化,難以進行標準化處理。適用于大數據存儲和處理技術
半結構化數據:數據格式不固定、但包含標簽或標記,用于描述數據的層次和關系。適用于需要部分結構化信息的場景。

關系型數據庫和非關系型數據庫的區別:

關系型數據庫是垂直擴展,即通過增加單個服務器的性能來提升數據庫的處理能力;非關系數據庫則更適合水平擴展,即通過增加更多的服務器節點來提升整體的處理能力,適用于大規模數據處理和分布式存儲。
關系型數據庫的數據一致性高,支持復雜的查詢和事務處理,適用于結構化數據和嚴格數據一致性的應用場景;非關系型數據庫擴展性強,讀寫性能高,適用于海量數據和高并發訪問的應用場景。

關系型數據庫簡介:(結構化、完全符合ACID)

數據庫:物理操作系統文件或磁盤數據塊的集合
數據庫實例:操作系統中一系列的進程以及為這些進程分配的內存。實例是數據庫管理系統的運行環境,負責管理數據庫的存儲、管理和更新操作。

分布式集群:通過網絡將多個服務器連接起來,形成一個邏輯上集中、物理上分布的大型數據庫系統。

關系型數據庫結構:
查詢管理器:將用戶的查詢語句轉化成內部命令;
存儲管理器:負責執行這些命令,并管理數據庫的物理存儲結構;

數據存儲和查詢流程:
查詢管理器接收用戶查詢,由DML和DDL解釋器進行解釋翻譯——解析后的命令傳給存儲管理器——存儲管理器根據命令對數據庫文件、數據字典和索引進行操作——操作結果返回用戶

模式Schema:包含表及其他數據庫對象、數據類型、函數、操作符等,是對象的集合
允許多個用戶使用一個數據庫而不干擾其他用戶;把數據庫對象組織成邏輯組,讓他們更便于管理;形成命名空間,避免對象的名字沖突。
可以更好地組織和管理數據庫中的各種對象,確保用戶可以高效地共享和使用同一個數據庫而不會互相干擾。

表空間Tablespace:由一個或多個數據文件組成
通過表空間定義數據庫對象文件的存放位置——頻繁使用的索引放置在性能穩定且運算速度快的磁盤上;歸檔數據,使用頻率低,對訪問性能要求低的表存放在速度慢的磁盤上。
數據庫中所有對象在邏輯上都存放在表空間中,在物理上儲存在表空間所屬的數據文件中——通過表空間限制物理空間使用上限,避免磁盤空間被耗盡。
幫助我們更好地管理數據庫對象地存放位置,還能優化數據庫的性能和資源利用。

數據庫對象——表Table
行——記錄、元組;列——字段(包含列名和數據類型)、域

其他數據庫對象:視圖view、index索引、sequence序列、store procedure存儲過程、function函數

事務Transaction:一組原子性地SQL執行單元,具有ACID特性:原子性、一致性、隔離性、持久性
事務結束的標記:COMMIT(提交事務)正常結束;ROLLBACK(回滾事務)異常結束

MySQL 關系型數據庫
物理存儲結構和內存結構:
內存結構(主要用于存儲臨時數據和日志的緩沖)
緩沖池Buffer Pool:用于緩存數據頁和索引頁。通過緩沖池,MySQL可以減少對磁盤的訪問,提高數據讀取和寫入的性能;
更改緩沖區Change Buffer:用于緩存對非唯一索引的更改操作。通過將這些更改操作緩存在內存中,可以減少對磁盤的寫入次數,從而提高寫入性能;
日志緩沖區Log Buffer:在事務提交之前,事務日志會先寫入日志緩沖區,然后再批量寫入磁盤,可以提高事務處理的效率;

物理架構:
系統表空間System Tablespace:存儲引擎的核心部分
文件表空間File-Per-Table Tablespace:每個表都有自己獨立的表空間文件,ibd文件,這種結構使得表的數據和索引存儲在獨立的文件中,便于管理和備份
重做日志Redo Log:用于記錄事務的更改操作,以便在系統崩潰時進行數據恢復,包括Ib_logfile0和Ib_logfile1
撤銷日志Undo Log:記錄日志的撤銷操作,在回滾時恢復數據

MySQL主從復制原理:
主從復制是MySQL常用的一種數據同步機制,能夠實現數據的高可用性和負載均衡
從庫生成兩個線程,一個I/O線程和一個SQL線程
binlog(二進制日志)記錄了主庫上所有數據庫更改操作,IO線程將從主庫獲取到的binlog日志寫入到從庫的Relay Log(中繼日志)。

非關系型數據庫簡介:(最終一致性、易擴展)

關系型數據庫的不足:無法適應多變的數據結構、高并發讀寫的瓶頸、可擴展性的限制

新需求:放松數據一致性的要求;改變固定的表結構;去除事務、關聯等復雜操作;

NoSQL:非關系型數據庫、分布式數據庫。不保證遵循ACID原則的數據存儲系統

特點:靈活性、可擴展性(通過使用分布式硬件集群來橫向擴展)、高性能、功能強大(提供API和數據模型)

應用場景:
鍵值數據庫:代表產品Redis。緩存、會話管理、配置管理、參數、購物車
文檔數據庫:代表產品MongoDB。內容管理、實時分析、博客、新聞網站
向量數據庫:代表產品騰訊云向量數據庫。推薦系統、圖像搜索、推薦系統、自然語言處理等AI領域
其他數據庫:圖形數據庫(Neo4j)、時序數據庫(InfluxDB)、搜索引擎數據庫(Elasticsearch)、列式數據庫(HBase)

云數據庫

云數據庫產品介紹

特征:按需擴展、高可用性、高安全性、多種數據庫類型(關系型、非關系型)、自動化管理

云數據庫架構原理

基本概念:
實例Instance:用戶實際使用的一個最小單位的數據庫服務集合
分片Sharding:將數據分成多個部分,分別存儲在不同的數據庫實例上
集群Cluster:一個數據庫系統由多個數據庫服務器組成
節點組Set:在數據庫集群中,若干服務器組成的邏輯分組。每個節點組包含多個節點,多個節點組組成一個集群。進一步細化集群的管理和調度,提高系統的靈活性和可擴展性
主機、從機Master/Slave:主機直接承擔讀寫;主從復制到從機,從機只可讀不可寫,也叫做備機
數據庫引擎SQL Engine:核心,用于存儲、處理和保護數據。確保數據的一致性和完整性。

整體架構:
VIP(統一入口)——SQL引擎——多個節點組,包括多個數據庫實例,為分布式實例;如果只有一個節點組,就是一個關系型實例——冷備集群

SQL引擎:權限校驗、讀寫分離、全局路由、語法分析、協議解析、路由執行
位于接入層,無主備之分,要求多節點部署;CPU密集型服務,對CPU、內存要求高;英文簡稱proxy

DB模塊:DB節點上部署數據庫服務,屬于IO密集型服務,對IO要求高,建議配置SSD硬盤
Agent屬于旁路模塊,主要承擔DB的狀態監控、存活檢測以及其他功能性任務的執行
目前DB內核可以提供兼容MariaDB和MySQL的不同版本

數據一致性:
強同步(不可退化)、強同步(可退化)、異步
故障轉移步驟:主節點故障、主機降級為從機——參與選舉的從機上報最新的Binlog文件偏移——選擇出Binlog文件偏移最大節點——重建各個節點的主備關系——修改路由請求發給新的主機

高可用性:透明故障轉移、

可擴展性:
如果是關系型實例,除最大規格實例外均提供無縫升級功能。
實例一鍵升級(通過Web控制臺)、分布式性能線性增加(由單個分片性能和分片數量決定)、不存在性能瓶頸(關鍵模塊基于分布式架構設計)、數據庫內核優化(消除開源Bug)

數據備份:實力默認開啟備份并備份7天,用戶需手動設置

讀寫分離
創建賬號時標記為只讀賬號;加入代碼注釋/*slave*/;只讀實例;

高安全性:事前(傳輸加密、數據加密)、事中(內核級安全策略、內置SQL防火墻、防誤操作機制)、事后(運維操作審計、數據庫審計、服務器審計、超級權限控制)

云數據庫分布式原理

云數據庫對業務來說讀寫數據完全透明,對業務呈現的表實際上是邏輯表,邏輯表屏蔽了物理層實際存儲規格,業務無需關心數據層如何存儲,只需要關注基于業務表應該如何設計。


水平分表:
單實例模式:一張庫表(邏輯表/物理表)分布在一個mysql實例上
分布式模式:業務側呈現一張邏輯表、數據存儲在不同的物理分片上。可以通過水平擴展來提升系統的性能和容量,適用于大規模數據和高并發場景。

拆分原理:基于日期順序(time);基于某字段劃分范圍(range,如按用戶id);基于某字段求模(hash);——hash算法原理可以保證數據相對均勻分布
按照shardkey拆分:不同分片負責不同范圍的號段,網關根據SQL中的shardkey發往對應的分片。

更新原理:
創建表時需指定路由字段shardkey——業務SQL的增、刪、改、查包含shardkey時,Proxy通過對shardkey進行hash——數據根據分片算法,將SQL發往對應的分片

查詢原理:
若SQL查詢有明確的shardkey值,將直接從對應分片取出數據;
若沒有shardkey,SQL查詢請求將發往所有分片。返回數據按原始SQL語義進行合并后返回給用戶。

云數據庫TDSQL

云數據庫:可以提供MySQL/MariaDB協議的關系型數據庫實例、TDSQL MySQL版實例。時面向OLTP的分布式數據庫。

產品優勢:互聯網高性能、高安全性、良好的擴展、便捷的運維、數據強一致、金融級高可用。
適用于:
大型應用(超高并發實時交易場景);物聯網數據(PB級數據存儲訪問場景);文件索引(萬億行數據秒級存取);高性價比商業數據庫解決方案。

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

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

相關文章

源滾滾AI編程SillyTavern酒館配置Claude Code API教程

什么是酒館 SillyTavern(簡稱 ST)是一款本地安裝的用戶界面,讓你能夠與文本生成大模型(LLM)、圖像生成引擎以及語音合成(TTS)模型進行交互。我們的目標是盡可能賦予用戶對 LLM 提示詞的最大掌控…

軟件設計師——軟件工程學習筆記

軟件工程 一、軟件工程基礎知識 1. 軟件的生存周期(1)可行性分析與項目開發計劃。這個階段主要確定軟件的開發目標及其可行性。參與該階段的人員有用戶、項目負責人、系統分析師。產生的文檔有 可行性分析報告、項目開發計劃。 (2&#xff09…

阿里云ecs 2h2g 實際可用內存不足的情況

Kdump是Linux系統的一種內核崩潰轉儲機制,它允許在系統發生內核崩潰(例如內核panic)時,捕獲內存的轉儲信息,從而幫助事后分析故障原因。該過程需要一塊預留內存(稱為crashkernel內存)&#xff0…

MySQL拋出的Public Key Retrieval is not allowed

有時候在連接實例的時候會遇到這樣的報錯Public Key Retrieval is not allowed問題分析這是因為賬號使用了sha256_password或者caching_sha2_password 密碼插件而sha256_password或者caching_sha2_password 插件為了加快認證過程,在服務端維護了一個密碼哈希緩存。當…

ICP可能有用的

可以訓練GICP WGICP: Differentiable Weighted GICP-Based Lidar Odometry | GAMMA CT ICP (99 封私信 / 80 條消息) KITTI里程計排行榜上第五!CT-ICP:實時彈性激光雷達里程計與回環檢測 - 知乎 Faster GICP github.com

nextcyber——Shells和Payloads

Shells和Payloads Shell的基礎知識 正向Shells Tom可以在一個Linux目標上發出nc -lvnp 443的命令。他需要從他的攻擊機連接到哪個端口,才能成功建立一個shell會話? 443SSH到目標,創建一個bind shell,然后用netcat連接到目標&a…

筆記:現代操作系統:原理與實現(2)

第三章 操作系統結構 操作系統的機制與策略 操作系統乃至計算機系統中控制復雜度的—個重要設計原則是:將策略與機制相分離,其中策略(policy)表示要‘‘做什么”,機制(mechanjsm)表示該“如何做”。 操作系…

c++ 壓縮與解壓縮

1、使用zip開源庫,引入比較簡單,只需要包含四個頭文件,不需要編譯成庫文件:zip.h、zip.cpp、unzip.h、unzip.cpp。2、壓縮使用到的主要函數:CreateZip 創建zip文件ZipAdd 添加文件ZipAddFolder 添加文件夾CloseZip 關閉…

水下無線光通信(UWOC)TDD系統:光收發端編解碼與信號處理分析與方案(數字版)

在光收發模塊中添加編解碼與信號處理模塊,核心目標是提升水下信道抗干擾能力(對抗后向散射、環境光、信號衰減)、降低誤碼率,同時兼容原有TDD時隙控制邏輯。以下從“編碼方案選型”“光發送端信號處理”“光接收端信號處理”“與原有系統集成”四部分展開,形成完整技術閉環…

Seat 事務@GlobalTransactional傳播行為

一,分布式事務傳播行為調用鏈描述一個普通事務注解的方法,調用一個分布式事務注解方法分布式事務注解方法:包含一個本地更新,和兩個外部服務更新操作,涉及三個服務問題1,普通事務注解方法,在全局…

美團龍貓利用expat庫實現的保存xml指定范圍數據到csv的C程序

用自己代碼逐個字符解析的速度較慢,嘗試了libxml2也比較慢,它需要一次性讀入內存,而expat庫支持流式讀取。就讓龍貓寫了一個程序,畢竟是久經考驗的庫,程序很快就調試通過了。要不是我一開始沒信心,讓他先輸…

Transformer核心—自注意力機制

Transformer基礎—自注意力機制 當我們處理文本、語音這類序列數據時,總會遇到一個老問題:模型到底該怎么理解“前后文”呢? RNN 和 LSTM 曾經是熱門的答案,它們沿著時間順序一點點地讀數據,但讀得太慢,還容…

分片上傳-

分片上傳原理:客戶端將選擇的文件進行切分,每一個分片都單獨發送請求到服務端;斷點續傳 & 秒傳原理:客戶端 發送請求詢問服務端某文件的上傳狀態 ,服務端響應該文件已上傳分片,客戶端再將未上傳分片上傳…

零知開源——基于STM32F103RBT6的智能風扇控制系統設計與實現

?零知IDE 是一個真正屬于國人自己的開源軟件平臺,在開發效率上超越了Arduino平臺并且更加容易上手,大大降低了開發難度。零知開源在軟件方面提供了完整的學習教程和豐富示例代碼,讓不懂程序的工程師也能非常輕而易舉的搭建電路來創作產品&am…

ReACT Agent概述

目錄 1. 核心思想:解決傳統方法的局限性 2. ReACT 的工作原理:一個循環過程 3. 技術實現的關鍵要素 4. ReACTAgent 在任務中的具體工作流程 5. 優勢與重要性 6. 挑戰與局限性 總結 ReACT 是一個非常重要的框架,它代表了構建能夠推理&a…

必知!機器人的分類與應用:RPA、人形與工業機器人

每當提及“機器人”這三個字,許多人的第一反應或許仍是科幻電影中那種具備人類外形、可自由行走與對話的仿生裝置。然而,一個值得深入探討的科技現實是:我們對于人形機器人的迷戀,更多源自文化敘事與情感投射,而非真實…

最快的 C 語言 JSON 庫 - yyjson

文章目錄DOM 模式下的性能比對一、AWS EC2 (AMD EPYC 7R32, gcc 9.3)二、iPhone (Apple A14, clang 12)持續更新中 持續更新中 持續更新中一個用 ANSI C(C89) 編寫的高性能 JSON 庫 API.md DOM 模式下的性能比對 DOM 模式,即構建完整 JSON 內存結構后訪問數據的模…

TP8 模型save更新不成功

一、User文件頭部代碼class User extends Model {const TITLE_NAME 用戶;//名稱//不能刪除protected $name user_; //表名 protected $connection \app\services\database\model\DbConnModel::CONN_DB_SITE; //數據庫的連接二、更新部分我要更新user_1用戶表中的用戶信息$se…

中囯移動電視盒子(魔百和)B860AV2.1-A2和CM311-5-zg刷機手記

文章目錄B860AV2.1-A2電視盒子情況打開隱藏或屏蔽的功能進入Recovery模式打開WiFi(如果被隱藏)打開運維調試打開ADB調試安裝第三方應用、設置第三方桌面等(Fiddler抓包替換官方App安裝包)開啟ADB和使用ADB禁止“首次啟動設置”刷機…

【系統架構設計(14)】項目管理下:軟件質量與配置管理:構建可靠軟件的基礎保障

文章目錄一、核心思想二、軟件質量屬性:定義"好軟件"的標準三、質量保證與控制:實現質量標準的方法四、CMMI模型:組織質量能力的演進路徑五、軟件配置管理:質量成果的保護機制六、軟件工具:質量管理的技術支…