MySQL入門指南:從安裝到工作原理

什么是MySQL

MySQL是一個開源關系型數據庫管理系統,由瑞典MySQL AB公司開發(目前屬于Oracle公司),被廣泛地應用在大中小型網站中

MySQL是一個小型的開源的關系型數據庫管理系統,與其他大型數據庫管理系統例如:Oracle、DB2、SQL Server等相比,MySQL規模小、功能有限,但是它體積小、速度快、成本低,并且提供的功能對稍微復雜的應用已經夠用,這使得MySQL成為世界上最受歡迎的開放源代碼數據庫

MySQL版本

針對不同的用戶,MySQL分為兩個不同的版本:

  • MySQL社區版:該版本完全免費,但是官方不提供技術支持
  • MySQL企業版:為企業提供數據庫應用,支持ACID事務處理,提供完整的提交、回滾、崩潰恢復和行政鎖定功能,需要付費使用,官方提供技術支持

另外由于MySQL是開源的,企業也可以根據項目需要定制自己的MySQL

MySQL安裝、配置與連接

MySQL不同平臺安裝參考:MySQL 教程

另一種安裝MySQL的方式是安裝小皮面板,在小皮面板內部安裝、連接、管理MySQL

?

可以在軟件管理部分按照、卸載不同版本的MySQL

?

可以在數據庫部分設置數據庫用戶名和密碼

?

可在首頁相應數據庫配置數據庫信息,比如數據庫端口號

?

配置MySQL環境變量:

  1. 找到MySQL安裝路徑:從小皮面板的下載文件夾中,確認MySQL的具體安裝目錄,比如:C:\phpstudy_pro\Extensions\MySQL8.0.26
  2. 打開環境變量設置:在Windows系統中,通過控制面板 - 系統 - 高級系統設置,點擊環境變量按鈕,或者直接在此電腦上右鍵,選擇屬性,然后在彈出的窗口中點擊 高級系統設置,再點擊環境變量
  3. 配置 Path 變量:在系統變量中找到Path變量并雙擊打開,點擊新建,將找到的MySQL 安裝路徑下的bin目錄路徑添加進去,例如C:\phpstudy_pro\Extensions\MySQL8.0.26\bin,點擊確定保存設置,關閉所有環境變量設置窗口
  4. 驗證配置:打開命令提示符(CMD),輸入mysql -V(注意 V 大寫),如果能顯示MySQL的版本信息,說明環境變量配置成功

選擇MySQL版本后點擊啟動按鈕,即可啟動MySQL服務

?

如果配置了MySQL環境變量就可以在命令行窗口中輸入以下指令訪問MySQL

mysql -u用戶名 -p密碼

?

在MySQL輸入符后輸入exitquit即可退出MySQL

MySQL工作原理

  • 客戶端與服務端連接:操作MySQL數據庫時,首先需要通過客戶端工具(如命令行客戶端、Navicat、SQLyog等圖形化界面工具 ,或編程接口如JDBC、ODBC等)連接到MySQL服務端,連接過程一般包含以下步驟:
  1. 建立網絡連接:客戶端與MySQL服務端(進程名為mysqld)基于TCP/IP協議建立網絡連接
  2. 身份驗證:服務端對客戶端發送過來的用戶名和密碼進行驗證,只有驗證通過,客戶端才能獲得訪問數據庫的權限,此外,服務端還會根據用戶權限表,判斷該用戶對特定數據庫、表等對象擁有哪些操作權限(如查詢、插入、修改、刪除等)
  • 查詢處理:客戶端成功連接并發送SQL查詢語句后,MySQL服務端會按以下流程處理:
  1. 查詢解析:服務端的查詢解析器將SQL語句解析成內部的解析樹結構,檢查SQL語句的語法是否正確,比如關鍵字拼寫是否正確、括號是否匹配等,如果語法有誤,會返回錯誤信息給客戶端
  2. 查詢優化:查詢優化器會根據解析樹生成多種可能的執行計劃, 并基于統計信息(如索引的使用情況、表的行數等)評估每個執行計劃的成本,選擇成本最低(效率最高)的執行計劃,例如,對于SELECT * FROM users WHERE age > 18;這樣的查詢,優化器會判斷是否使用age字段上的索引能更快獲取數據
  3. 查詢執行:執行器根據優化器生成的執行計劃,調用存儲引擎提供的接口來訪問和操作數據,比如,執行器調用InnoDB存儲引擎的接口去讀取符合條件的數據行
  • 存儲引擎工作機制:MySQL支持插件式的存儲引擎架構,不同的存儲引擎決定了數據的存儲方式、索引結構以及事務處理等特性,常見存儲引擎有InnoDB、MyISAM等 :
  1. InnoDB:是MySQL默認的存儲引擎,支持事務,遵循ACID特性。它使用聚簇索引(基于主鍵構建),數據和索引緊密結合存儲,適合處理高并發的讀寫操作,尤其是涉及事務的場景,如電商的訂單處理、銀行的轉賬業務等,此外,InnoDB有緩沖池機制,會把經常訪問的數據和索引緩存到內存中,以減少磁盤I/O操作 ,提升查詢性能
  2. MyISAM:不支持事務,適合以讀操作和插入操作為主的場景,比如日志記錄。它的表存儲結構分為數據文件和索引文件,索引采用非聚簇索引,MyISAM表支持表級鎖,在寫入操作時會鎖定整張表,這在高并發寫入場景下性能較差
  • 數據存儲與持久化:數據最終會存儲在磁盤上,MySQL通過操作系統文件系統管理數據文件
  • 事務處理:如果SQL語句涉及事務(如多個插入、更新、刪除操作需要作為一個整體成功或失敗),MySQL會進行如下處理:
  1. 事務開啟:客戶端發送START TRANSACTION或BEGIN語句,開啟事務
  2. 操作執行:在事務中執行的SQL語句,會記錄在 undo log(回滾日志)中,用于在事務回滾時撤銷已經執行的操作,同時,對數據的修改會先在內存中進行, 并記錄 redo log
  3. 事務提交或回滾:如果客戶端發送COMMIT語句,MySQL會將內存中的修改持久化到磁盤數據文件,并清理undo log中對應的事務記錄,如果發送ROLLBACK語句,則會根據undo log撤銷事務中已經執行的所有操作

?

MySQL工作原理了解即可

如有錯誤請指出,不喜勿噴

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

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

相關文章

dask.dataframe.shuffle.set_index中獲取 divisions 的步驟分析

dask.dataframe.shuffle.set_index 中獲取 divisions 的步驟分析 主要流程概述 在 set_index 函數中,當 divisionsNone 時,系統需要通過分析數據來動態計算分區邊界。這個過程分為以下幾個關鍵步驟: 1. 初始檢查和準備 if divisions is None:…

ai生成ppt工具有哪些?10款主流AI生成PPT工具盤點

隨著人工智能技術的飛速發展,AI生成PPT工具逐漸成為職場人士、學生和創作者提升效率的得力助手。這類工具通過智能算法,能夠快速將文本、數據或創意轉化為結構化、視覺化的演示文稿,大幅節省設計時間。1、AiPPT星級評分:★★★★★…

Qt多線程編程學習

Qt多線程編程學習 1. 項目概述 本項目展示了Qt中多線程編程的基本用法,通過繼承QThread類創建自定義線程,并演示了線程的啟動、執行和銷毀過程。項目包含一個簡單的用戶界面,用戶可以通過按鈕控制線程的啟動和結束。 1.1 項目結構 項目包含以…

加密貨幣武器化:惡意npm包利用以太坊智能合約實現隱蔽通信

ReversingLabs研究人員發現兩個惡意npm包利用以太坊(Ethereum)智能合約隱藏并傳播惡意軟件。這兩個名為colortoolsv2和mimelib2的軟件包于2025年7月被識別,展現了開源安全攻防戰中的新戰術。惡意軟件包偽裝成實用工具攻擊活動始于7月7日發布的…

Spring Boot 全局字段處理最佳實踐

在日常開發中,我們總會遇到一些瑣碎但又無處不在的字段處理需求:? 請求處理: 用戶提交的表單,字符串前后帶了多余的空格,需要手動 trim()。? 響應處理: 返回給前端的 BigDecimal 金額,因為精度問題導致JS處理出錯&am…

三坐標測量機在汽車制造行業中的應用

在汽車制造業中,零部件精度決定著整車性能。從發動機活塞的微米級公差,到車身焊接的毫米級間隙,汽車制造“差之毫厘,謬以千里” ,任何細微偏差都可能引發連鎖反應:發動機抖動、異響、油耗飆升,車…

機床夾具設計 +選型

機床夾具設計—第2組(鉆床夾具)仿真組裝視頻_嗶哩嗶哩_bilibili 夾具-商品搜索-怡合達一站式采購平臺 米思米FA標準品電子目錄new 可能要吧這些定位塊單獨用yolo訓練一邊才能搞識別分析 3長條一短銷定位,黃色的用來夾緊 一個面加一短軸一棱…

表格識別技術:通過計算機視覺和OCR,實現非結構化表格向結構化數據的轉換,推動數字化轉型。

在日常工作和生活中,我們無處不在與表格打交道。從財務報表、發票收據,到科研論文中的數據表、醫療報告,表格以其清晰、結構化的方式,承載著大量關鍵信息。然而,當這些表格以紙質或圖片等非結構化形式存在時&#xff0…

Go基礎(②Viper)

Viper 讀取配置創建一個配置文件 config.yamlserver:port: 8080timeout: 30 # 超時時間(秒) database:host: "localhost"user: "root"password: "123456"name: "mydb"然后用 Viper 讀取這個配置,代…

kafka Partition(分區)詳解

一、什么是 PartitionPartition(分區) 是 Kafka Topic(主題) 的最小并行單位。一個 Topic 可以包含多個 Partition,每個 Partition 底層對應一個有序、不可變的消息隊列,消息只會順序追加。Partition 內部消…

中創中間件適配HGDB

文章目錄環境文檔用途詳細信息環境 系統平臺:Microsoft Windows (64-bit) 10 版本:5.6.5 文檔用途 本文章主要介紹中創中間件簡單適配HGDB。 詳細信息 一、數據源配置 1.數據庫準備 (1)安裝HGDB并創建一個名為myhgdb的數據…

服務器內存和普通計算機內存在技術方面有什么區別?

服務器內存和普通計算機內存在技術上的區別,主要體現在為滿足不同工作場景和要求而采用的設計和特性上。下面這個表格匯總了它們的主要技術差異,方便你快速了解: ?技術特性??服務器內存??普通計算機內存??錯誤校驗 (ECC)??支持ECC(…

哪款AI生成PPT工具對職場新人最友好?操作門檻最低的是哪個?

一句話生成專業PPT,職場新人也能輕松做出高質量演示文稿現代職場節奏快,PPT制作已成為必備技能。然而,職場新人常面臨兩大挑戰:缺乏設計經驗,以及需要在有限時間內完成高質量演示。傳統PPT制作耗時費力,需梳…

1.注解的力量:Spring Boot如何用注解重構IoC容器

文章目錄1.1 IoC容器:Spring的智能管家1.2 注解驅動:給管家下指令1.2.1 SpringBootApplication:總管家的聘書1.2.2 組件注解:員工的身份標識1.2.3 Autowired:依賴注入的三種方式1.2.4 Bean注解:手動招聘特殊…

【算法】92.翻轉鏈表Ⅱ--通俗講解

一、題目是啥?一句話說清 給你一個鏈表和兩個整數 left 和 right,反轉從第 left 個節點到第 right 個節點的子鏈表,并返回反轉后的鏈表。其他部分保持不變。 示例: 輸入:head = [1,2,3,4,5], left = 2, right = 4 輸出:[1,4,3,2,5](反轉了從第2到第4個節點) 二、解題…

Nature子刊:新發現!深層腦網絡中發現強迫癥癥狀的神經生物標志物

強迫癥(OCD)是一種令人困擾的精神疾病,患者常常被強迫思維和強迫行為所困擾。例如,有些人會反復洗手,無法控制自己的清潔沖動;還有些人會不斷檢查門窗是否關好,即便他們已經確認過無數次。這些行…

Onlyoffice集成與AI交互操作指引(Iframe版)

Onlyoffice集成與AI交互操作指引(Iframe版) 本文檔系統介紹了軟件系統集成OnlyOffice實現在線編輯與AI輔助功能的方案。主要內容包括:后端需提供文檔配置信息并實現Callback接口以處理文檔保存;前端通過Vue集成編輯器&#xff0c…

TypeScript 中 keyof、typeof 和 instanceof

在 TypeScript 開發中,keyof、typeof 和 instanceof 是核心的類型操作符和操作符,專門用于提升類型安全、代碼可讀性和維護性。1. keyof 操作符定義和用途:keyof 是一個類型操作符,用于獲取對象類型的所有鍵(屬性名&am…

分布式專題——1.1 Redis單機、主從、哨兵、集群部署

1 Redis 部署 下面演示在 Linux 環境下部署 Redis7。 1.1 單機部署 1.1.1 檢查安裝 gcc 環境Redis 是由 C 語言編寫的,它的運行需要 C 環境,因此我們需要先安裝 gcc; # 關閉防?墻 systemctl stop firewalld.service # 查看防火墻狀態 firewa…

2025年滲透測試面試題總結-54(題目+回答)

安全領域各種資源,學習文檔,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各種好玩的項目及好用的工具,歡迎關注。1、SQL注入的防護方法有哪些? 2、永恒之藍的漏洞原理是什么?怎么做到的? 3、命令…