《mysql是怎样运行的》读书笔记一
程序员文章站
2022-07-11 11:42:09
...
在下载MySQL
源码并安装之后
一、启动MySQL
服务器程序
- 在
unix
系统中,
1.1mysqld
和mysqls_safe
,mysqld.server
,mysqld_multi,
mysqls_safe
会间接的调用mysqld
,mysqld.server
会间接调用mysqls_safe
。 - 在
windows
系统中,
2.1 手动启动在MySQL
安装目录的bin
目录下的Mysqld
可执行文件。
2.2 注册为windows
服务,启动Mysql
服务器程序。
二.启动MySQL
客户端程序
通过bin
目录下的可执行文件mysql
,可以与服务器程序交互,在启动这个程序的时候,需要一些参数:
mysql -h主机名 -u用户名 -p密码
-p
和密码值之间不能有空白字符(其他参数名和参数值之间可以有参数)
客户端与服务器
-
MySQL
采用TCP
作为服务器端和客户端的之间的网络通信协议,采用的是TCP/IP
协议,进程间通信使用的IP地址+端口号
,MySQL
服务器在启动时会默认申请3306
端口号。 - 每当一个客服端程序连接到服务器程序时,服务器进程就会专门创建一个线程来处理与这个客服端交互。当客户端与服务器端断开连接时,服务器并不会立即销毁这个线程,而是将这个线程缓存起来,当新的客户端进行连接时,再将这个线程分配给客户端。
-
MySQL
会把刚处理过的查询请求缓存起来,这个查询请求可以在不同的客户端之间共享,如果请求中包含某些系统函数,函数,系统表,这个请求就不会被缓存,比如now()
;每次查询到的时间肯定是不一样的,所以不会被缓存的。若该表的结构或者数据被改变时,则与该表的缓存的都将被变成无效并从查询中删除。 - 存储引擎主要负责在物理上表示数据,怎么样存取数据,以及怎么把数据写到具体的物理存储器上,存储引擎是负责对表中的数据进行读取和写入工作的,我们可以为不同的表设置不同的存储引擎,不同的存储引擎管理的表可能有不同的存储结构,不同的读取和写入方式。
- 人们把
MySQL
服务器处理请求过程简单的划分成server
层和存储引擎层,不涉及真实数据存取的功能为server
层,存取真实数据的部分划分为存储引擎层,存储引擎层为server
层提供统一的调用接口,其中包含了几十个不同 的用途的底层函数。srever
层和存储引擎层交互是以记录为单位的。 -
InnoDB
从MySQL5.5.5
版本开始作为MySQL
的默认引擎,之前默认的版本是MyISAM
。表的存储引擎是可以修改的。