MySQL_1
1.逻辑架构简介
1)连接层:最上层是一些客户端和连接服务。在该层上引入了线程池的概念,为通过认证安全介入的客户端提供线程。
2)服务层:完成核心服务功能,如SQL接口、过程、函数等。
3)引擎层:存储引擎真正地负责了Mysql中数据的存储和提取,服务器通过API与存储引擎进行通信。不同的存储引擎具有的功能不同,可以根据自己的需要进行选取。最常用的引擎包括MyISAM和InnoDB。
4)存储层:主要是将数据存储在运行于裸设备的文件系统里,并完成与存储引擎的交互。
2.MyISAM和InnoDB
| 对比项 |
MyISAM |
InnoDB |
| 主外键 |
不支持 |
支持 |
| 事务 | 不支持 | 支持 |
| 行表锁 |
表锁,即使操作一条记录也会锁住整个表, 不适合高并发操作 |
行锁,操作时只锁某一行,不对其他行有影响,适合高并发 |
| 缓存 | 只缓存索引,不缓存真实数据 | 缓存索引和真实数据,对内存要求较高 |
| 表空间 | 小 | 大 |
| 关注点 | 性能 | 事务 |
| 默认安装 | 是 | 是 |
3.MySQL性能下降的原因
1)查询语句写的不好;
2)索引失效;
3)关联查询太多join;
4)服务器参数设置不合理。
4.SQL执行的顺序
手写:
select
from
join on
where
group by
having
order by
limit
机读:
from <表>
on <join_condition>
<join_type> join <right_table>
where <where_condition>
group by <group_by_list>
having <having_condition>
select
distinct <select_list>
order by <order_by_condition>
limit <limit_number>

浙公网安备 33010602011771号