MySQL架构与概念
实例instatnce、连接connection、会话session、事务transaction 联系与区别
- MySQL是单进程多线程,即MySQL实例在系统上表现就是一个MySQL服务进程
- 实例 instance : MySQL实例是线程和内存组成,实例才是真正用于操作数据库文件的;一般情况下一个实例操作一个或多个数据库;集群情况下多个实例操作一个或多个数据库
- 连接 connection : 连接是从客户端到MySQL实例的一条物理路径
- 会话 session : 是通信双方从开始通信到通信结束期间的一个上下文(Context)
- 会话 session 的建立:mysql中建立一个会话,不是和具体的数据库相连接,而是跟某个instance建立会话(每个会话可以使用不同的用户身份)
- 连接 connection 与 会话 session 的区别:会话(Session) 是和连接(Connection)是同时建立的,两者是对同一件事情不同层次的描述。简单讲,连接(Connection)是物理上的客户端同服务器的通信链路,会话(Session)是逻辑上的用户同服务器的通信交互
- 会话 session 与 事务 transaction 的联系:会话中可包含多个事务;一个事务只能在一个会话中
- 相关操作命令
// 查看会话连接数,多次发起连接,能够看到多个session 间端口号互不相同
show processlist;
SQL语言
- 数据查询语言DQL
- 数据操纵语言DML
- 数据定义语言DDL
- 数据控制语言DCL
参考资料