MySQL是大型架构核心,下面我详解MySQL常用命令@mikechen
1. 登录 MySQL
mysql -u root -p
指定 IP:
mysql -h 127.0.0.1 -P 3306 -u root -p
说明:
| 参数 | 含义 |
|---|---|
| -u | 用户名 |
| -p | 密码 |
| -h | 主机 |
| -P | 端口 |
2. 查看所有数据库
SHOW DATABASES;
输出:
information_schema
mysql
performance_schema
test
系统数据库:
| 数据库 | 作用 |
|---|---|
| mysql | 用户权限 |
| information_schema | 元数据 |
| performance_schema | 性能监控 |
3. 创建数据库
CREATE DATABASE demo;
指定字符集:
CREATE DATABASE demo
CHARACTER SET utf8mb4;
推荐:
utf8mb4
4. 切换数据库
USE demo;
后续 SQL:
默认在 demo 下执行
5. 查看当前数据库
SELECT DATABASE();
输出:
demo
6. 查看所有表
SHOW TABLES;
输出:
user
order
product
7. 创建表
CREATE TABLE user (
id BIGINT PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50),
age INT
);
关键点:
| 类型 | 作用 |
|---|---|
| BIGINT | 大整数 |
| VARCHAR | 变长字符串 |
| AUTO_INCREMENT | 自增 |
8. 查看表结构
DESC user;
或者:
SHOW CREATE TABLE user;
9. 插入数据
INSERT INTO user(name, age)
VALUES ('Tom', 20);
批量插入:
INSERT INTO user(name, age)
VALUES
('Tom', 20),
('Jack', 22),
('Lucy', 18);
生产建议:
批量插入性能更高
10. 查询数据
查询全部:
SELECT * FROM user;
条件查询:
SELECT * FROM user
WHERE age > 20;
排序:
SELECT * FROM user
ORDER BY age DESC;
分页:
SELECT * FROM user
LIMIT 0,10;
11. 更新数据
UPDATE user
SET age = 25
WHERE id = 1;
注意:
一定要加 WHERE
否则:
全表更新
12. 删除数据
删除指定数据:
DELETE FROM user
WHERE id = 1;
危险操作:
DELETE FROM user;
生产慎用。
13. 添加索引
创建普通索引:
CREATE INDEX idx_name
ON user(name);
查看索引:
SHOW INDEX FROM user;
索引本质:
B+Tree
14. 查看执行计划(性能优化核心)
EXPLAIN
SELECT * FROM user
WHERE name = 'Tom';
这是 MySQL 性能优化最核心命令。
重点字段:
| 字段 | 含义 |
|---|---|
| type | 扫描类型 |
| key | 使用索引 |
| rows | 扫描行数 |
| Extra | 额外信息 |
15. 查看当前连接
这是,生产排障核心命令。
SHOW PROCESSLIST;
输出:
Id User Host db Command Time State
查看:
慢 SQL;
锁等待;
活跃连接;
死锁问题;