知識(shí))
MySQL 的基本概念與架構(gòu)MySQL 是一個(gè)開源的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)由 Oracle 公司維護(hù)。它基于客戶端-服務(wù)器架構(gòu)支持多用戶、多線程操作廣泛應(yīng)用于 Web 應(yīng)用開發(fā)中。其核心特性包括高性能、高可靠性、易用性和可擴(kuò)展性。我們每天都在訪問各種?站、APP如微信、QQ、抖?、今?頭條、騰訊新聞等這些東西上?都存在?量的信息這些信息都需要有地?存儲(chǔ)存儲(chǔ)在哪呢?cái)?shù)據(jù)庫。所以如果我們需要開發(fā)?個(gè)?站、app數(shù)據(jù)庫我們必須掌握的技術(shù)常?的數(shù)據(jù)庫有mysql、oracle、sqlserver、db2等。上?介紹的?個(gè)數(shù)據(jù)庫oracle性能排名第?服務(wù)也是相當(dāng)?shù)轿坏牡鞘召M(fèi)也是?常?的?融公司對(duì)數(shù)據(jù)庫穩(wěn)定性要求?較??般會(huì)選擇oracle。mysql是免費(fèi)的其他?個(gè)?前暫時(shí)收費(fèi)的mysql在互聯(lián)?公司使?率也是排名第?資料也?常完善社區(qū)也??;钴S所以我們主要學(xué)習(xí)mysql。數(shù)據(jù)庫常?的概念DB數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)的容器。DBMS數(shù)據(jù)庫管理系統(tǒng)又稱為數(shù)據(jù)庫軟件或數(shù)據(jù)庫產(chǎn)品?于創(chuàng)建或管理DB。SQL結(jié)構(gòu)化查詢語??于和數(shù)據(jù)庫通信的語?不是某個(gè)數(shù)據(jù)庫軟件持有的?是?乎所有的主流數(shù)據(jù)庫軟件通?的語?。中國?之間交流需要說漢語和美國?之間交流需要說英語和數(shù)據(jù)庫溝通需要說SQL語?。數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù)的?些特點(diǎn)?數(shù)據(jù)存放在表中然后表存放在數(shù)據(jù)庫中? ?個(gè)庫中可以有多張表每張表具有唯?的名稱表名來標(biāo)識(shí)??? 表中有?個(gè)或多個(gè)列列又稱為“字段”相當(dāng)于java中的“屬性”? 表中每??數(shù)據(jù)相當(dāng)于java中的“對(duì)象”安裝與初始化配置安裝 MySQL 可通過官方提供的二進(jìn)制包或使用操作系統(tǒng)包管理器如 apt、yum、brew完成。安裝后需進(jìn)行初始化設(shè)置包括設(shè)置 root 用戶密碼、配置安全選項(xiàng)、啟動(dòng)服務(wù)進(jìn)程并確保防火墻允許 3306 端口通信。mysql常?的?些命令mysql啟動(dòng)2種?式?式1cmd中運(yùn)?services.msc會(huì)打開服務(wù)窗?在服務(wù)窗?中找到mysql服務(wù)點(diǎn)擊右鍵可以啟動(dòng)或者停??式2以管理員?份運(yùn)?cmd命令停?命令net stop mysql啟動(dòng)命令net start mysqlC:\Windows\system32net stop mysql mysql 服務(wù)正在停?.mysql 服務(wù)已成功停?。C:\Windows\system32net start mysql mysql 服務(wù)正在啟動(dòng) .mysql 服務(wù)已經(jīng)啟動(dòng)成功。注意命令后?沒有結(jié)束符號(hào)mysql登錄命令mysql -h ip -P 端? -u ?戶名 -pC:\Windows\system32mysql -h localhost -P 3306 -u root -pEnter password: *******Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 10Server version: 5.7.25-log MySQL Community Server (GPL)Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.Type help; or \h for help. Type \c to clear the current input statement.說明? -P ?寫的P后?跟上端?? 如果是登錄本?ip和端?可以省略如mysql -u ?戶名 -p可以通過上?的命令連接原創(chuàng)機(jī)器的mysql查看數(shù)據(jù)庫版本mysql --version 或者mysql -V?于在未登錄情況下查看本機(jī)mysql版本C:\Windows\system32mysql -Vmysql Ver 14.14 Distrib 5.7.25, for Win64 (x86_64)C:\Windows\system32mysql --versionmysql Ver 14.14 Distrib 5.7.25, for Win64 (x86_64)select version();登錄情況下查看鏈接的庫版本mysql select version();顯示所有數(shù)據(jù)庫show databases;數(shù)據(jù)庫與表的基本操作創(chuàng)建數(shù)據(jù)庫使用CREATE DATABASE語句指定字符集和排序規(guī)則以支持多語言。在數(shù)據(jù)庫中創(chuàng)建表需定義列名、數(shù)據(jù)類型、約束條件如主鍵、外鍵、唯一性、非空等常用的數(shù)據(jù)類型包括 INT、VARCHAR、TEXT、DATE、DATETIME 等。SQL 語言基礎(chǔ)數(shù)據(jù)查詢與操作SQLStructured Query Language是用于管理關(guān)系型數(shù)據(jù)庫的標(biāo)準(zhǔn)語言。核心語句包括SELECT從表中檢索數(shù)據(jù)支持 WHERE 條件過濾、ORDER BY 排序、LIMIT 限制結(jié)果數(shù)量。INSERT INTO向表中插入新記錄。UPDATE修改已有數(shù)據(jù)配合 WHERE 子句精準(zhǔn)定位目標(biāo)行。DELETE FROM刪除指定數(shù)據(jù)務(wù)必謹(jǐn)慎使用建議先備份或加條件限制。索引機(jī)制及其優(yōu)化作用索引是提升查詢性能的關(guān)鍵技術(shù)。常見索引類型包括主鍵索引、唯一索引、普通索引和全文索引。通過CREATE INDEX語句為常用查詢字段建立索引可顯著減少全表掃描時(shí)間。但索引會(huì)增加寫入開銷應(yīng)合理選擇索引字段避免過度索引。數(shù)據(jù)完整性與約束機(jī)制MySQL 支持多種數(shù)據(jù)完整性控制手段主鍵約束PRIMARY KEY保證每行記錄的唯一性。外鍵約束FOREIGN KEY維護(hù)表間關(guān)聯(lián)關(guān)系防止孤立數(shù)據(jù)。唯一約束UNIQUE確保某列值不重復(fù)。檢查約束CHECK可用于驗(yàn)證數(shù)據(jù)范圍盡管在早期版本中有限支持。用戶權(quán)限管理與安全策略MySQL 提供細(xì)粒度的權(quán)限控制系統(tǒng)。通過CREATE USER創(chuàng)建賬戶使用GRANT和REVOKE分配或回收權(quán)限如 SELECT、INSERT、UPDATE、DROP 等。建議遵循最小權(quán)限原則避免使用 root 賬戶執(zhí)行日常操作并定期更新密碼。常見存儲(chǔ)引擎對(duì)比MySQL 支持多種存儲(chǔ)引擎最常用的是 InnoDB 與 MyISAMInnoDB支持事務(wù)、行級(jí)鎖、外鍵適合高并發(fā)讀寫場景是默認(rèn)引擎。MyISAM不支持事務(wù)但讀取速度快適合靜態(tài)數(shù)據(jù)或只讀應(yīng)用。 根據(jù)業(yè)務(wù)需求選擇合適的引擎可在建表時(shí)通過ENGINExxx指定。備份與恢復(fù)策略定期備份是保障數(shù)據(jù)安全的重要措施。常用方法包括使用mysqldump工具導(dǎo)出邏輯備份支持全庫或單表。利用二進(jìn)制日志Binary Log實(shí)現(xiàn)增量備份結(jié)合全量備份可實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)恢復(fù)。生產(chǎn)環(huán)境推薦采用自動(dòng)化腳本定時(shí)備份并將備份文件異地存放。性能調(diào)優(yōu)基礎(chǔ)影響性能的因素包括查詢效率、連接數(shù)、緩存配置等??赏ㄟ^分析慢查詢?nèi)罩維low Query Log識(shí)別低效語句使用EXPLAIN查看執(zhí)行計(jì)劃優(yōu)化索引和 SQL 寫法。調(diào)整關(guān)鍵參數(shù)如innodb_buffer_pool_size、max_connections可提升整體響應(yīng)能力。常見問題排查與解決方案典型問題包括連接超時(shí)、權(quán)限拒絕、死鎖、磁盤空間不足等??赏ㄟ^查看錯(cuò)誤日志error log、監(jiān)控系統(tǒng)資源使用情況、檢查網(wǎng)絡(luò)連通性等方式定位原因。對(duì)于死鎖應(yīng)優(yōu)化事務(wù)順序并縮短持有鎖的時(shí)間。