文章目录
linux下安装 MySQL 5.5
linux 环境下尽量不要出现中文和空格
MySQL 日志文件
- log-bin
二进制文件 - log-err
错误日志 - log
查询日志
MySQL 数据文件
- .frm 文件 存放表结构
- .myd 文件 存放表数据
- .myi 文件 存放表索引
可能随引擎和版本不同而不同
MySQL 逻辑架构
- 连接层
- 服务层
- 引擎层
- 存储层
MySQL 存储引擎
对比项 | MyISAM | InnoDB |
---|---|---|
主外键 | 不支持 | 支持 |
事务 | 不支持 | 支持 |
行表锁 | 表锁,不适合高并发 | 行锁,适合高并发 |
缓存 | 只缓存索引,不缓存数据 | 缓存索引和数据 |
占用空间 | 小 | 大 |
关注点 | 性能 | 事务 |
是否默认安装 | 是 | 是 |
MySQL 性能下降的原因
- 查询语句差
- 索引失效
- 关联查询使用过多 join
- 服务器参数设置不合理
SQL 执行加载顺序
手写顺序
SELECT
FROM
JOIN
ON
WHERE
GROUP BY
HAVING
ORDER BY
LIMIT
机读顺序
FROM
ON
JOIN
WHERE
GROUP BY
HAVING
SELECT
DISTINCT
ORDER BY
LIMIT
七种 JOIN 理论
SELECT
FROM a
INNER JOIN b
ON a.Key = b.Key
SELECT
FROM a
LEFT JOIN b
ON a.Key = b.Key
SELECT
FROM a
RIGHT JOIN b
ON a.Key = b.Key
SELECT
FROM a
LEFT JOIN b
ON a.Key = b.Key
WHERE b.Key IS NULL
SELECT
FROM a
RIGHT JOIN b
ON a.Key = b.Key
WHERE b.Key IS NULL
SELECT