新手入门
数据库、表、索引、事务的"人话版"解释,帮你建立 MariaDB 的心智模型
关系型数据库到底是什么?
可以这样类比:
| 概念 | 类比 |
|---|---|
| 数据库(Database) | 一个 Excel 文件 |
| 表(Table) | 文件里的一张 Sheet |
| 行(Row) | Sheet 里的 一行记录 |
| 列(Column) | Sheet 里的 一栏字段(带类型) |
| 主键(Primary Key) | 每行的 唯一身份证号 |
| 索引(Index) | 为查询加速的 目录 |
| 事务(Transaction) | 一组要么全做、要么全不做的 操作包 |
MariaDB 是一个关系型数据库管理系统(RDBMS),意思是它帮你管理这些"Excel 文件",并且:
- 多个人/程序可以同时读写而不会乱
- 数据落到硬盘上,断电不丢
- 用 SQL 语言查询,几乎是全行业标配
你的第一张表
CREATE DATABASE blog;
USE blog;
CREATE TABLE posts (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(200) NOT NULL,
body TEXT,
author VARCHAR(64) NOT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
INDEX idx_author (author)
);
INSERT INTO posts (title, body, author)
VALUES ('Hello', '这是第一篇', 'alice'),
('又一篇', 'AI 写的', 'bob');
SELECT * FROM posts WHERE author = 'alice';跑完了?恭喜你已经掌握了 80% 的日常用法。
几个新人最常踩的坑
1. 字符集别用 utf8,用 utf8mb4
MariaDB / MySQL 里那个叫 utf8 的字符集最多只支持 3 字节,存不下 emoji 和部分中文罕用字。永远用 utf8mb4:
CREATE DATABASE blog CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;新版 MariaDB 默认已经是 utf8mb4,但建库时显式写出来更稳妥。
2. 主键尽量用 BIGINT AUTO_INCREMENT 或 UUID v7
不要用业务字段做主键(手机号、邮箱),它们会变;也不要直接用随机 UUID v4,索引性能差。
3. 不要把所有列都建索引
索引能加速 SELECT,但会拖慢 INSERT/UPDATE/DELETE,还占空间。只给经常用作过滤、排序、JOIN 条件的列加索引。
4. 事务不要忘了 COMMIT
START TRANSACTION;
UPDATE accounts SET balance = balance - 100 WHERE id = 1;
UPDATE accounts SET balance = balance + 100 WHERE id = 2;
COMMIT; -- ← 漏写这一行会让改动消失MyISAM vs InnoDB:你可能会在老教程里看到 MyISAM,不要用。它不支持事务、不安全。MariaDB 默认存储引擎是 InnoDB(11.x 起也支持 Aria 用于临时表)。
下一步
- 想做生产应用?看 运维与迁移
- 用 LLM 写代码?看 给 AI 开发者
- 部署到云?看 云上 MariaDB