【MySQL篇】數據庫基礎

目錄

1,什么是數據庫?

?2,主流數據庫

3,MySQL介紹

1,MySQL架構

2,SQL分類

3,MySQL存儲引擎


1,什么是數據庫?

數據庫(Database,簡稱DB)是按照數據結構來組織、存儲和管理數據的倉庫。它是長期存儲在計算機內的、有組織的、可共享的、統一管理的大量數據的集合。

數據庫管理系統(DBMS)是一種操縱和管理數據庫的大型軟件,用于建立、使用和維護數據庫。它對數據庫進行統一的管理和控制,以保證數據庫的安全性和完整性。?常見的數據庫管理系統有MySQL、SQL?Server、Oracle等。

存儲數據用文件就可以了,為什么還要弄個數據庫?

一般的文件確實提供了數據的存儲功能,但是沒有提供非常好的數據管理能力。站在我們程序員的角度,如果需要對文件內容進行修改,查找以及新增等操作,我們需要使用編程語言編寫程序來實現對文件的操作。而如果文件內容太大,就不方便操作。

而數據庫就可以很好解決這個問題,只需給出字段或者要求,數據庫會給出想要的結果。

文件保存數據有以下缺點:

  • 文件的安全性問題。
  • 文件不利用數據查詢和管理。
  • 文件不利于存儲海量數據。
  • 文件在程序中操作不方便。

?2,主流數據庫

1,MySQL:開源,最受歡迎的數據庫,并發性好,適合web應用和中小型程序,不適合做復雜的業務。

2,Oracle:商業數據庫,適合大型項目,復雜的業務邏輯。

3,SQL Server:微軟的產品,商業數據庫,深度集成Windows生態,支持BI和大數據分析。

4,SQLite:嵌入式輕量級數據庫,適合移動端和小型應用(如 Android、iOS)。

5,PostgreSQL:開源,支持 JSON、GIS、全文搜索等擴展,功能最豐富的關系型數據庫。

6,H2:是一個用java開發的嵌入式數據庫。

3,MySQL介紹

1,MySQL架構

MySQL是一個可移植的數據庫,幾乎能在當前所有操作系統上運行,如Unix/Linux、Windows、Mac 和 Solaris。?各種系統在底層實現方面各有不同,但是 MySQL 基本上能保證在各個平臺上的物理體系結構的一致性。

架構圖:

?

MySQL的架構大致可以分為以下幾層:

1,連接層(Client Connectors)負責客戶端與mysql服務器的通信。支持各種主流的編程技術:如Java、C、Python、.NET等,通過各自的API技術與MySQL建立連接。

2,服務層(Server Layer)這是MySQL的核心部分。主要包含以下內容:

(1)連接池(Connection Pool):負責存儲和管理客戶端與數據庫的連接,一個線程負責管理一個連接。

(2)SQL接口用于接受客戶端發送的各種SQL命令并返回用戶需要查詢的結果,如DML、DDL、存儲過程、視圖、觸發器等。

(3)解析器(Parser負責將請求的SQL解析生成一個“解析樹”(AST),然后根據一些MySQL規則進一步檢查解析樹是否合法。

(4)查詢優化器(Optimizer)當“解析樹”通過解析器語法檢查后,將交由優化器將其轉化成執行計劃,然后與存儲引擎交互。

(5)緩存(Query Cache)緩存查詢結果,如果查詢緩存有命中的查詢結果,查詢語句就可以直接去查詢緩存中取數據。

3,存儲引擎層(Storage Engines):負責MySQL中數據的存儲與提取,與底層系統文件進行交互。MySQL存儲引擎是插件式的,支持多種存儲引擎。常見的存儲引擎有InnoDB、MyISAM、Memory等。InnoDB是MySQL的默認存儲引擎,它支持事務、行鎖和外鍵等功能。

4,文件系統層(File System)

存儲數據文件、日志文件及元數據。

  • 表數據文件

    • InnoDB:?.ibd(獨立表空間)或?ibdata1(共享表空間)。

    • MyISAM:?.MYD(數據文件)、.MYI(索引文件)。

  • 日志文件

    • Redo Log(重做日志):保證事務持久性(ib_logfile0,?ib_logfile1)。

    • Undo Log(回滾日志):保證事務原子性(存儲在?undo tablespaces)。

    • Binlog(二進制日志):主從復制和數據恢復(mysql-bin.000001)。

  • 配置文件:my.cnf?或?my.ini

可以總結如下圖:

2,SQL分類

DDL【data definition language】數據定義語言用來維護存儲數據的結構 代表指令: create, drop, alter

DML【data manipulation language】數據操縱語言,用來對數據進行操作 代表指令: insert,delete,update DML中又單獨分了一個DQL,數據查詢語言,代表指令: select

DCL【Data Control Language】數據控制語言,主要負責權限管理和事務 代表指令: grant,revoke,commit?

3,MySQL存儲引擎

存儲引擎是:數據庫管理系統如何存儲數據、如何為存儲的數據建立索引和如何更新、查詢數據等技術 的實現方法。

連接服務器

mysql? -h 127.0.0.1? -P 3306? -u root -p?

mysql? -u? root? -p

如果沒有寫-h 127.0.0.1,默認連接本地

如果沒有寫-P 3306 ,默認連接3306端口號?

查看存儲引擎:

show engines;

?

?

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

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

相關文章

網絡安全事件研判

🍅 點擊文末小卡片 ,免費獲取網絡安全全套資料,資料在手,漲薪更快 研判(入侵檢測) 研判我理解為人工層面對入侵檢測事件進行再分析,即借助已有的設備告警根據經驗判斷是否為真實action 研判工作…

python整理文件下

我們使用 os.path.join() 函數拼接出文件要移動的目標地址。 并使用 os.path.exists() 函數配合 not 關鍵字找到未創建的文件夾。 這節課,我們會先創建文件夾,然后再移動文件到目標文件夾。如果文件夾不存在,我們需要先創建文件夾&#xff…

hackmyvm-buster

題目地址 信息收集 主機發現 ┌──(root?kali)-[/home/kali] └─# arp-scan -I eth1 192.168.56.0/24 Interface: eth1, type: EN10MB, MAC: 00:0c:29:34:da:f5, IPv4: 192.168.56.103 WARNING: Cannot open MAC/Vendor file ieee-oui.txt: Permission denied WARNING: C…

FS800DTU聯動OneNET平臺數據可視化View

目錄 1 前言 2 環境搭建 2.1 硬件準備 2.2 軟件環境 2.3 硬件連接 3 注冊OneNET云平臺并建立物模型 3.1 參數獲取 3.2 連接OneNET 3.3上報數據 4 數據可視化View 4.1 用戶信息獲取 4.2 啟用數據可視化View 4.3 創建項目 4.4 編輯項目 4.5 新增數據源 4.6 數據過濾器配置 4.6 項…

Dockerfile 中的 COPY 語句:作用與使用詳解

在 Docker 的構建過程中,Dockerfile 是一個核心文件,它定義了鏡像的構建步驟和內容。其中,COPY 語句是一個非常重要的指令,用于將文件或目錄從構建上下文(通常是 Dockerfile 所在的目錄及其子目錄)復制到容…

大白話Vuex 核心概念(state、mutations、actions)的使用案例與原理

大白話Vuex 核心概念(state、mutations、actions)的使用案例與原理 Vuex是Vue.js應用程序中專門用來管理狀態的工具,就好像是一個大管家,幫你把項目里一些重要的數據和操作管理得井井有條。下面用大白話結合案例來介紹Vuex核心概…

機器學習介紹與數據集

一、機器學習介紹與定義 1.1 機器學習定義 機器學習(Machine Learning)是讓計算機從數據中自動學習規律,并依據這些規律對未來數據進行預測的技術。它涵蓋聚類、分類、決策樹、貝葉斯、神經網絡、深度學習(Deep Learning&#xf…

大模型訓練——pycharm連接實驗室服務器

一、引言 我們在運行或者復現大佬論文代碼的時候,筆記本的算力不夠,需要使用實驗室的服務器進行運行。可以直接在服務器的終端上執行,但是這樣的話代碼調試就不方便。而我們可以使用 pycharm 連接到服務器,既方便了代碼調試&…

【Linux】進程優先級 | 進程調度(三)

目錄 前言: 一、進程優先級: 1.通過nice值修改優先級: 二、進程切換: 三、上下文數據 四、Linux真實調度算法: 五、bitmap位圖: 六、命令總結: 總結: 前言: 我…

【redis】數據類型之hyperloglog

Redis的HyperLogLog(HLL)是一種高效的概率數據結構,也是一種基于字符串的數據結構,用于估計大數據集的唯一元素數量(基數統計)。它通過極低的內存占用(約 12KB)實現接近線性的時間復…

【C語言】第八期——指針、二維數組與字符串

目錄 1 初始指針 2 獲取變量的地址 3 定義指針變量、取地址、取值 3.1 定義指針變量 3.2 取地址、取值 4 對指針變量進行讀寫操作 5 指針變量作為函數參數 6 數組與指針 6.1 指針元素指向數組 6.2 指針加減運算(了解) 6.2.1 指針加減具體數字…

SpringBoot——生成Excel文件

在Springboot以及其他的一些項目中&#xff0c;或許我們可能需要將數據查詢出來進行生成Excel文件進行數據的展示&#xff0c;或者用于進行郵箱發送進行附件添加 依賴引入 此處demo使用maven依賴進行使用 <dependency><groupId>org.apache.poi</groupId>&…

mac 下 java 調用 gurobi 不能加載 jar

在 mac 電腦中的 java 始終不能加載 gurobi 的 jar 包&#xff0c;java 的開發軟件 eclipse&#xff0c;idea 總是顯示找不到 gurobi 的 jar 包&#xff0c;但是 jar 包明明就在那里。 摸索了三個小時&#xff0c;最后發現原因竟然是&#xff1a; jar 包太新&#xff0c;替換…

服務端配置TCP探活,超出探活時間后的行為?

server端啟動 &#xff08;完整源碼在最后&#xff09; 配置探活 setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPIDLE, &(int){5}, sizeof(int)); // 空閑60秒后探測setsockopt(client_fd, IPPROTO_TCP, TCP_KEEPINTVL, &(int){10}, sizeof(int)); // 探測間隔10秒…

LLC諧振變換器恒壓恒流雙競爭閉環simulink仿真

1.模型簡介 本仿真模型基于MATLAB/Simulink&#xff08;版本MATLAB 2017Ra&#xff09;軟件。建議采用matlab2017 Ra及以上版本打開。&#xff08;若需要其他版本可聯系代為轉換&#xff09;針對全橋LLC拓撲&#xff0c;利用Matlab軟件搭建模型&#xff0c;分別對輕載&#xf…

MySQL 中如何查看 SQL 的執行計劃?

SQL 語句前面使用 EXPLAIN 關鍵字&#xff1a; EXPLAIN SELECT * FROM users WHERE id 1; 字段 含義 id 查詢的序號&#xff08;如果是子查詢或聯合查詢&#xff0c;會有多個 id&#xff09;。 select_type 查詢的類型&#xff08;簡單查詢、子查詢、聯合查詢等&#xff…

Discourse 中集成 Claude 3.7 Sonnet 模型

如果 Discourse 實例已經接入了 Anthropic。 那么只需要在后臺挑一個不希望繼續使用的模型改下就好。 否則需要重新在 Discourse 實例中配置 AI&#xff0c;然后獲得 Anthropic 的 key。 進入后臺的 AI 然后選擇 LLMs 雖然我們這里已經顯示成 3.7 了&#xff0c;但實際上所有…

Oracle 12c Docker安裝問題排查 sga_target 1536M is too small

一、問題描述 在虛擬機環境&#xff08;4核16GB內存&#xff09;上部署 truevoly/oracle-12c 容器鏡像時&#xff0c;一切運行正常。然而&#xff0c;當在一臺 128 核 CPU 和 512GB 內存的物理服務器上運行時&#xff0c;容器啟動時出現了 ORA-00821 等錯誤&#xff0c;提示 S…

DeepSeek 提示詞:高效的提示詞設計

&#x1f9d1; 博主簡介&#xff1a;CSDN博客專家&#xff0c;歷代文學網&#xff08;PC端可以訪問&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移動端可微信小程序搜索“歷代文學”&#xff09;總架構師&#xff0c;15年工作經驗&#xff0c;精通Java編…

KIMI K1.5:大規模強化學習在大語言模型中的應用與工程實踐

目錄 1、核心技術創新:長上下文強化學習 2、策略優化的技術細節 2.1、在線鏡像下降變體 2.2、長度懲罰機制 2.3、智能采樣策略 3、工程架構創新 3.1、混合部署框架 3.2、代碼沙箱與獎勵模型 3.3、分布式系統架構 4、實驗成果與性能提升 5、結論與未來展望 大語言模…