數據庫小冊(1)

1. 關系型數據庫主要考點

關系型數據庫:

  1. 架構
  2. 索引
  3. 語法
  4. 理論規范

2. 如何設計一個關系型數據庫

設計即模塊劃分。

數據庫最主要的功能是存儲我們的數據,所以需要一個存儲的文件系統

我們要把涉及到的物流數據提供邏輯的形式給組織和表示出來,這是我們就用到了程序的存儲管理模塊。

為了更快更好的提升我們程序的效率,我們普遍的做法是引入緩存機制,把取出來的數據放入緩存當中,這樣我們就可以減少從數據庫讀取IO消耗,加快效率。

我們還需要給外界提供可以讀取我們數據庫指令和可讀的SQL語句,這樣我們就需要一個SQL解析器

這時候為了進一步去提升SQL執行效率,我們將SQL緩存到緩存里面,將編譯好的SQL放入緩存中。

此外我們還需要注意設計的緩存不宜過大,算法里面還需要有淘汰機制,淘汰了一些不常用的數據。執行的SQL操作也需要記錄下來,方便我們做數據庫的主從同步或災難恢復。還需要給用戶數據管理的私密空間和權限劃分。還需要考慮異常的發生處理,因此引入了容災機制。當我們數據庫掛了,這時候應該怎么辦?要恢復到什么程度?這些都需要設計。而且為了進一步提升查詢效率,以及讓數據庫支持并發,我們還需要引入最能突出數據庫特性的鎖和索引這兩個模塊。

注意:

如何優化存儲效能,我們都知道處理數據肯定不可以在磁盤中去執行,而是讓程序其加載到程序空間的內存去做。此外,為了執行效率,我們需要盡可能減少IO,如果頻繁的去數據庫逐行查找并放回,那么頻繁的IO會讓數據庫執行效率低下,同時一次IO讀取一行或多行數據所花費的時間沒有區別。所以為了提升效率,一次去讀取多行,這樣來看行就失去了它的意義,所以數據庫中把塊或頁作為存儲數據的單元格。

3. 為什么需要使用索引?

首先我們需要做一個調研,用最簡單的方法進行對數據庫的查詢,即對數據庫進行全表掃描,對整個數據庫表全部或分批次的進行掃描并加載到內存中,逐個去加載,輪詢直到找到我們的目標,這種方法普遍被認為十分慢,但是是在所有情況下都這么慢嗎?

存在即是合理,當我們的數據庫里面的數據只有很少比如幾十行作用,使用全表掃描肯定比通過索引來的快。

對于絕大多數情況來說,我們都需要避免全表掃描,提升我們的效率,這時候索引就誕生了。索引就類型于字典,通過索引來大幅度提升查詢效率。

那什么是索引呢?通過上面的分析,我們知道索引即是把記錄限定到一定查詢范圍內的字段。那么主鍵對我們來說就是一個很好的切入點,包括唯一鍵和普通鍵也是可以的。

那么怎么才可以讓我們的查找更加高效呢?這時候就應該引入數據結構來幫助我們了。可以是二叉樹,平衡二叉樹,紅黑樹,B樹,B+樹,一些hash結構。而Mysql里面主要是通過B+數實現的。

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

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

相關文章

記錄收入最高的一次私活 選號網,需要大量賣號的人可能需要,比如游戲腳本批量跑的號

選號網管理后臺(上傳游戲信息、賬號信息、 查看記錄) http://124.223.214.5:180/admin1 選號網客戶端(PC/H5頁面 給客戶篩選商品用) http://124.223.214.5:181/ 該在線地址僅供低頻率測試,正式使用需要另外部署。 功能不滿足可以聯系開發者定制 一、項目的由來 …

熱烈慶祝“中國抗戰勝利80周年”,織信低代碼助力國之重器砥礪前行!

“從保家衛國到科技強軍,織信低代碼平臺為軍工企業數字化轉型注入新動能。”80年后的今天,國人記憶從未褪色。2025年9月3日,正值中國抗戰勝利80周年閱兵之際,我國國防軍工力量在經歷長期的艱苦奮斗后,現今終于迎來了曙…

PostgreSQL與SQL Server:B樹索引差異及去重的優勢

PostgreSQL與SQL Server:B樹索引差異及去重的優勢 在優化查詢性能方面,索引是數據庫工程師可使用的最強大工具之一。PostgreSQL和Microsoft SQL Server(或Azure SQL)都將B樹索引用作其默認索引結構,但每個系統實現、維…

【微實驗】使用MATLAB制作一張賽博古琴?

當一個理工音樂人沒錢去買古琴,我直接用代碼畫一個古琴!目錄 零、總腳本: 一、核心功能:交互模塊拆解 二、核心價值 一、初始化腳本:參數配置與啟動界面 ①廢話不說,直接上代碼 ②代碼模塊拆解與詳細解…

畢業項目推薦:67-基于yolov8/yolov5/yolo11的大棚黃瓜檢測識別系統(Python+卷積神經網絡)

文章目錄 項目介紹大全(可點擊查看,不定時更新中)概要一、整體資源介紹技術要點功能展示:功能1 支持單張圖片識別功能2 支持遍歷文件夾識別功能3 支持識別視頻文件功能4 支持攝像頭識別功能5 支持結果文件導出(xls格式…

無人機小尺寸RFSOC ZU47DR板卡

整板尺寸:120*120mmFPGA: XCZU47DR-2FFVE1156I;DDR:PS側8GB 2400Mhz*64bit / PL側 4GB 2400Mhz*32bit;2路(QSP0QSPI1)/單片512Mb、共計1Gb;千兆以太網:1路(PS側);主要接口資源如下&a…

LangGraph(一):入門從0到1(零基礎)

文章目錄LangGraph入門從0到10?? 安裝 & 確認環境1?? 把 LangGraph 想象成「自動化的做菜流水線」2?? 最小可運行例子:一句話復讀機3?? 加一個小節點:把用戶輸入變大寫4?? 條件邊:如果用戶說 quit 就結束,否則復讀5…

學習數據結構(16)快速排序

快速排序的基本思想:快速排序是Hoare于1962年提出的一種二叉樹結構的交換排序方法,其基本思想為:任取待排序元素序列中的某元素作為基準值,按照該基準值將待排序集合分割成兩子序列,左子序列中所有元素均小于基準值&am…

uni-app iOS 上架常見問題與解決方案,實戰經驗全解析

uni-app 讓開發者能夠“一套代碼,多端運行”,極大降低了開發成本。 但當應用進入 iOS 上架階段 時,不少團隊發現流程并沒有想象中那么順利:證書問題、打包失敗、上傳出錯、審核被拒……這些都可能讓項目卡殼。 本文結合實際案例&a…

洗衣機的智能升級集成方案WT2606B屏幕驅動+AI語音控制

2025,洗衣機市場正從功能滿足轉向體驗升級,企業正面臨哪些轉型難點?一文為您解讀洗衣機行業智能化升級之路。傳統洗衣機就像是一個"沉默的工人",只能通過簡單的LED指示燈告訴你它在工作,卻無法讓你真正了解它在干嘛。用…

機器學習進階,梯度提升機(GBM)與XGBoost

梯度提升機(Gradient Boosting Machine, GBM),特別是其現代高效實現——XGBoost。這是繼隨機森林后自然進階的方向,也是當前結構化數據競賽和工業界應用中最強大、最受歡迎的算法之一。為什么推薦XGBoost? 與隨機森林互…

【ARMv7】開篇:掌握ARMv7架構Soc開發技能

本專欄,開始與大家共同總結使用ARMv7系列CPU的Soc開發技能。大概匯總了一下,后面再逐步完善下面的思維導圖。簡單說說:與通用的ARMv7-A/R相比,以STM32F為代表的ARMv7-M架構有以下關鍵區別和重點:無MMU,有MP…

【學術會議論文投稿】JavaScript在數據可視化領域的探索與實踐

【ACM出版 | EI快檢索 | 高錄用】2024年智能醫療與可穿戴智能設備國際學術會議(SHWID 2024)_艾思科藍_學術一站式服務平臺 更多學術會議請看 學術會議-學術交流征稿-學術會議在線-艾思科藍 目錄 引言 JavaScript可視化庫概覽 D3.js基礎入門 1. 引入…

CSS基礎學習步驟

好的,這是一份為零基礎初學者量身定制的 **CSS 學習基礎詳細步驟**。我們將從最根本的概念開始,通過一步一步的實踐,帶你穩穩地入門。 第一步:建立核心認知 - CSS 是做什么的? 1. 理解角色: HTML&…

MTK Linux DRM分析(三十七)- MTK phy-mtk-hdmi.c 和 phy-mtk-hdmi-mt8173.c

一、簡介 HDMI PHY驅動 HDMI 的物理層接口主要就是 HDMI Type-A 接口(19 pin),除此之外還有 Type-B、Type-C(Mini HDMI)、Type-D(Micro HDMI)、Type-E(車載專用)。 1. HDMI Type-A(常見 19-pin 標準接口) HDMI Type-A Connector Pinout ========================…

【人工智能學習之MMdeploy部署踩坑總結】

【人工智能學習之MMdeploy部署踩坑總結】報錯1:TRTNet: device must be a GPU!報錯2:Failed to create Net backend: tensorrt報錯3:Failed to load library libonnxruntime_providers_shared.so1. 確認庫文件是否存在2. 重新安裝 ONNX Runti…

力扣516 代碼隨想錄Day16 第一題

找二叉樹左下角的值class Solution { public:int maxd0;int result;void traversal(TreeNode* root,int depth){if(root->leftNULL&&root->rightNULL){if(depth>maxd){maxddepth;resultroot->val;}}if(root->left){depth;traversal(root->left,depth…

網格圖--Day07--網格圖DFS--LCP 63. 彈珠游戲,305. 島嶼數量 II,2061. 掃地機器人清掃過的空間個數,489. 掃地機器人,2852. 所有單元格的遠離程度之和

網格圖–Day07–網格圖DFS–LCP 63. 彈珠游戲,305. 島嶼數量 II,2061. 掃地機器人清掃過的空間個數,489. 掃地機器人,2852. 所有單元格的遠離程度之和 今天要訓練的題目類型是:【網格圖DFS】,題單來自靈茶山…

多功能修改電腦機器碼序列號工具 綠色版

多功能修改電腦機器碼序列號工具 綠色版電腦機器碼序列號修改軟件是一款非常使用的數據化虛擬修改工具。機器碼修改軟件可以虛擬的定制您電腦上的硬件信息,軟件不會對您的電腦造成傷害。軟件不需要您有專業的知識,就可以模擬一份硬件信息。機器碼修改軟…

React Hooks深度解析:useState、useEffect及自定義Hook最佳實踐

React Hooks自16.8版本引入以來,徹底改變了我們編寫React組件的方式。它們讓函數組件擁有了狀態管理和生命周期方法的能力,使代碼更加簡潔、可復用且易于測試。本文將深入探討三個最重要的Hooks:useState、useEffect,以及如何創建…