mysql
连接与基础操作
mysql -u root -p
CREATE DATABASE app CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci;
CREATE USER 'app_user'@'%' IDENTIFIED BY 'replace-with-a-secret';
GRANT SELECT, INSERT, UPDATE, DELETE ON app.* TO 'app_user'@'%';
常用排查
SHOW DATABASES;
SHOW TABLES;
DESCRIBE users;
SHOW PROCESSLIST;
EXPLAIN SELECT * FROM users WHERE email = '[email protected]';
为高频筛选和关联列建立索引,并使用 EXPLAIN 验证执行计划。定期演练备份恢复,不要只验证备份文件是否存在。
数据表例子
USE app;
CREATE TABLE users (
id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
email VARCHAR(255) NOT NULL,
name VARCHAR(100) NOT NULL,
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
UNIQUE KEY uk_users_email (email)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
备份与恢复
mysqldump -u root -p --single-transaction app > app.sql
mysql -u root -p app < app.sql
经验总结
- 业务表优先使用 InnoDB,支持事务和行级锁。
- 字符集使用
utf8mb4,避免表情等字符写入失败。 - 不要对线上大表直接执行无条件
UPDATE或DELETE;先用SELECT确认范围。