首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

21 分鐘 MySQL 入門教程:從安裝、基礎 SQL 到索引優化的極速上手指南

     編輯:MySQL 綜合教學

本教程面向零基礎開發者,21 分鐘帶你跑通 MySQL 安裝、庫表操作、核心 SQL、索引原理、常用優化五大模塊,建立完整知識骨架。

第 1 分鐘:安裝與連接

# Ubuntu/Debian
sudo apt update && sudo apt install mysql-server -y
# CentOS/RHEL
sudo yum install mysql-server -y && sudo systemctl enable --now mysqld
# 登錄
mysql -uroot -p

第 2-5 分鐘:庫表增刪改查(DDL/DML)

-- 庫
CREATE DATABASE shop CHARSET utf8mb4;
USE shop;

-- 表
CREATE TABLE users (
  id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(50) NOT NULL,
  email VARCHAR(100) NOT NULL UNIQUE,
  created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

-- 增
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
-- 刪
DELETE FROM users WHERE id = 1;
-- 改
UPDATE users SET name = 'Alice Smith' WHERE id = 2;
-- 查
SELECT * FROM users WHERE email LIKE '%@example.com';

第 6-10 分鐘:進階查詢(JOIN、聚合、子查詢)

-- 內連接
SELECT u.name, o.amount
FROM users u
INNER JOIN orders o ON u.id = o.user_id;

-- 聚合
SELECT u.name, COUNT(o.id) AS order_cnt, SUM(o.amount) AS total
FROM users u LEFT JOIN orders o ON u.id = o.user_id
GROUP BY u.id, u.name
HAVING total > 1000;

-- 子查詢
SELECT * FROM users
WHERE id IN (SELECT user_id FROM orders WHERE amount > 500);

第 11-15 分鐘:索引原理與建立

  • B+ 樹結構:InnoDB 聚簇索引 = 主鍵 B+ 樹,葉子節點存全行;二級索引葉子存主鍵值,回表查全行。
  • 最左前綴:複合索引 (a,b,c) 支援 a、a,b、a,b,c 三種前綴查詢。
  • 覆蓋索引:SELECT a,b FROM t WHERE c=1 若索引 (c,a,b) 存在,無需回表。
  • 建索引:ALTER TABLE users ADD INDEX idx_email (email);

第 16-18 分鐘:EXPLAIN 讀懂執行計劃

EXPLAIN SELECT * FROM users WHERE email = 'alice@example.com';

關鍵列:

列優秀值含義
typeref / eq_ref / range訪問類型,避免 ALL(全表掃)
keyidx_email實際用到的索引
rows1預估掃描行數
ExtraUsing index覆蓋索引/Using where/Using temporary

第 19-21 分鐘:三條優化鐵律

  1. 避免 SELECT *:只取需要列,減少 I/O、網絡、內存佔用。
  2. 用 LIMIT 分頁:SELECT * FROM logs ORDER BY id DESC LIMIT 100000, 20 深分頁慢 → 改 WHERE id < 100000 ORDER BY id DESC LIMIT 20(游標分頁)。
  3. 慢查詢日誌:slow_query_log=1, long_query_time=1,定期 pt-query-digest 分析 TOP 10。

下一步學習路線圖

  • 事務與鎖(MVCC、間隙鎖、死鎖排查)
  • 主從復制與 GTID、半同步、MHA/Orchestrator
  • 分庫分表(ShardingSphere、Vitess)
  • 性能調優(InnoDB 參數、硬體選型、燒機測試)

21 分鐘建立骨架,終身精進靠實戰。建議立即在本地跑通上述所有語句,肌肉記憶勝過十遍閱讀。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved