第一章初识mysql

1.1mysql采用c/s的架构

1.2mysql的安装

mysql下面有有一个bin目录,放着许多执行文件,其中mysqld.exe便是启动服务器的执行文件。并且可以将bin目录添加到PATH的环境变量中,便可以在cmd中直接运行相应的命令。

1.3mysql的启动服务器

1.3.1在unix中启动服务器
  • mysqld:可以直接启动服务器。
  • mysqld_safe:启动服务器后,监控运行状态,如果出错后,会诊断输出到日志中并且重启服务器。
  • mysql.server start:也可以启动,mysql.server stop便可以结束。
  • mysqld_multi:可以启动或停止多个服务器。
1.3.2在windows中启动服务器
  • 手动启动,即执行mysqld文件
  • 服务的方式启动:“文件名” --install,便将其注册到了服务中去,然后可以使用net start MySQL便能启动服务,一般可以将其设置为自动启动。

1.4启动mysql客户端程序

启动客户端的程序是mysql.exe

其中启动命令为

mysql -hlocalhost -uroot -proot
//其中-h表示服务器的ip地址,-u表示用户名,-p表示密码
并且可以采用quit/exit退出

注意:

如果想要密码是密文显示,可以采用输入命令过后输入回车,然后再敲密码。

1.5客户端与服务器的连接过程

mysql客户端与服务器端默认采用tcp/ip协议连接其中默认端口是3306,如果服务器需要修改监听端口,可以在启动时用mysqld -P3307。

此时客户端连接便需指定端口:

mysql -hlocalhost -P3307 -uroot -proot

除此之外,windows中还可以考虑用命名管道和共享内存交互信息,而UNIX中可以采用套接字交互。

1.6服务器处理客户端请求

1、mysql的客户端与服务端连接分为连接管理、解析与优化、存储引擎三个 部分

2、连接管理:在连接管理的过程中,服务器不会销毁客户端所建立的线程,方便其他线程使用,所以mysql中的每一个连接会开一个线程来处理。

3、解析与优化

  1. 查询缓存:首先看缓存中是否存在,其中包括某些系统函数的不会查询缓存,如查询时间的now函数,但是缓存需要维护,在mysql8.0后几乎舍弃了缓存。
  2. 语法解析:即查询过程中的编译过程
  3. 查询优化:会对查询语句进行优化,如外查询转化为内查询等,最后会生成一个执行计划,可以采用explain语句查看。

4、存储引擎:存储引擎负责mysql中数据写入或者从物理内存中读取。

注意:查询缓存、解析语法、查询优化都是属于server层,其中执行完server层会生成一个执行计划,然后根据执行计划调用存储引擎中提供给我们的函数返回数据。以select为例,其首先会查询存储引擎中得到一条记录,然后判断where条件是否满足相应的条件,如果满足就返回记录。其中记录是存储在缓存中,当缓存存储满后才向客户端发送结果,其中可以用net_buffer_length来控制缓存长度。

1.7存储引擎

存储引擎负责数据在物理内存中的读取和写入。mysql默认支持innodb存储引擎,其中innodb支持事务,外键和行级锁。除此之外,常见的存储引擎还有MEMORY,MERGE,MyIsam等。

1.8关于存储引擎的操作

查看当前服务器支持的存储引擎,其中Savepoints代表存储引擎是否支持事务的部分回滚:

show engines

创建表时设置存储引擎:

CREATE TABLE 表名{}
ENGINE = 存储引擎;

修改表的存储引擎

ALTER TABLE 表名 ENGINE = 存储引擎名

查看表的存储引擎:

SHOW TABLE STATUS FROM 表名
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值