MySQL 是大型架构中的核心组件,熟练掌握其常用命令是数据库管理与优化的基本功。本文从登录到性能分析,系统梳理13个高频 MySQL 命令,助你快速应对开发与线上排查。
1. mysql(登录数据库)
进入 MySQL 的入口命令:
mysql -u root -p
输入密码即可登录。
登录远程数据库:
mysql -h 192.168.10.100 -P 3306 -u root -p
参数说明:
| 参数 |
说明 |
| -h |
主机IP |
| -P |
端口 |
| -u |
用户名 |
| -p |
密码 |
2. SHOW DATABASES
查看所有数据库:
SHOW DATABASES;
输出示例:
mysql
information_schema
performance_schema
sys
order_db
线上排查数据库时经常使用。
3. CREATE DATABASE
创建数据库:
CREATE DATABASE order_db;
指定字符集:
CREATE DATABASE order_db
CHARACTER SET utf8mb4;
推荐统一使用 utf8mb4,以避免乱码问题。
4. USE
切换数据库:
USE order_db;
查看当前数据库:
SELECT DATABASE();
开发过程中几乎每天都会使用。
5. SHOW TABLES
查看数据库中的所有表:
SHOW TABLES;
输出示例:
user
order
product
查看表结构:
DESC user;
或者:
SHOW CREATE TABLE user;
6. CREATE TABLE
创建数据表:
CREATE TABLE user(
id BIGINT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(50),
age INT,
create_time DATETIME
);
查看建表语句:
SHOW CREATE TABLE user;
线上迁移数据库时经常需要。
7. INSERT
插入数据。
单条插入:
INSERT INTO user(username, age)
VALUES('Tom', 20);
批量插入:
INSERT INTO user(username, age)
VALUES
('Tom', 20),
('Jack', 22),
('Lucy', 18);
批量插入性能远高于循环插入。
8. SELECT
MySQL 最核心的命令。
查询全部:
SELECT * FROM user;
条件查询:
SELECT *
FROM user
WHERE age > 20;
排序:
SELECT *
FROM user
ORDER BY age DESC;
分页:
SELECT *
FROM user
LIMIT 0, 10;
聚合统计:
SELECT COUNT(*)
FROM user;
线上出现频率最高。
9. UPDATE
修改数据:
UPDATE user
SET age = 25
WHERE id = 1;
批量更新:
UPDATE user
SET age = age + 1
WHERE age < 18;
注意:如果不加 WHERE,会修改整张表,是线上事故的高发区。
UPDATE user
SET age = 25;
10. DELETE
删除数据。
删除指定记录:
DELETE
FROM user
WHERE id = 1;
删除全部:
DELETE FROM user;
危险操作(逻辑等价于无条件删除) :
DELETE FROM user
WHERE 1 = 1;
生产环境必须谨慎执行。
11. ALTER TABLE
修改表结构,线上版本迭代中最常用的命令之一。
新增字段:
ALTER TABLE user
ADD email VARCHAR(100);
修改字段:
ALTER TABLE user
MODIFY email VARCHAR(200);
删除字段:
ALTER TABLE user
DROP COLUMN email;
添加索引:
ALTER TABLE user
ADD INDEX idx_username(username);
12. DROP
删除数据库对象。
删除表:
DROP TABLE user;
删除数据库:
DROP DATABASE order_db;
执行前建议先 SHOW TABLES; 确认,再操作。
13. EXPLAIN
SQL 优化中最重要的命令。
查看 SQL 执行计划:
EXPLAIN
SELECT *
FROM user
WHERE username = 'Tom';
典型结果解读:
| 字段 |
含义 |
| type |
访问类型 |
| key |
使用索引 |
| rows |
扫描行数 |
| Extra |
额外信息 |
重点关注:
type 为 ALL 表示全表扫描,性能最差。
rows 数值越大,扫描数据量越大,执行越慢。
Extra 出现 Using filesort 表示额外排序,Using temporary 表示使用了临时表,都是优化重点。
以上13个命令覆盖了日常数据库操作的绝大部分场景,掌握它们是进阶架构师的必经之路。