MySQL 8.0 实用技巧:字符集与索引优化
发表于 : 周日 6月 14, 2026 8:28 am
MySQL 8.0 用了一段时间,记录几个实用点。
[b]1. 字符集选择[/b]
推荐全站 utf8mb4:
[code]CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;[/code]
如果只支持基本中文,可以用 utf8mb3,但 emoji 会报错。
[b]2. 查看索引使用情况[/b]
[code]EXPLAIN SELECT * FROM users WHERE email='test@test.com';[/code]
[b]3. 慢查询日志[/b]
[code]SET GLOBAL slow_query_log = 1;
SET GLOBAL long_query_time = 2;[/code]
查看慢查询:
[code]mysqldumpslow /var/lib/mysql/*-slow.log[/code]
[b]4. 常用信息查询[/b]
[code]# 查看表大小
SELECT table_name, ROUND(((data_length + index_length) / 1024 / 1024), 2) AS size_mb
FROM information_schema.tables
WHERE table_schema = '数据库名' ORDER BY size_mb DESC;
# 查看当前连接
SHOW FULL PROCESSLIST;[/code]
[b]1. 字符集选择[/b]
推荐全站 utf8mb4:
[code]CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;[/code]
如果只支持基本中文,可以用 utf8mb3,但 emoji 会报错。
[b]2. 查看索引使用情况[/b]
[code]EXPLAIN SELECT * FROM users WHERE email='test@test.com';[/code]
[b]3. 慢查询日志[/b]
[code]SET GLOBAL slow_query_log = 1;
SET GLOBAL long_query_time = 2;[/code]
查看慢查询:
[code]mysqldumpslow /var/lib/mysql/*-slow.log[/code]
[b]4. 常用信息查询[/b]
[code]# 查看表大小
SELECT table_name, ROUND(((data_length + index_length) / 1024 / 1024), 2) AS size_mb
FROM information_schema.tables
WHERE table_schema = '数据库名' ORDER BY size_mb DESC;
# 查看当前连接
SHOW FULL PROCESSLIST;[/code]