客户端和服务端的架构
以微信为例子 客户端程序有很多 比如手机端 电脑软件或者网页版微信
消息被客户端包装了一下 添加了发送者和接收者信息 然后从狗哥的微信客户端发送给微信服务器
微信服务器从消息里获取到它的发送者 接收者 根据消息的接收者信息把这条消息送达到猫爷的微信客户端 猫爷的微信客户端里就显示出狗哥給他发了一条消息
客户端和服务器端的通信
- 启动mysql 服务端程序
- 启动客户端 并连接到服务端程序
- 在客户端程序输入一些命令语句作为请求 发送到服务器程序 服务器接收到这些请求之后根据请求内容来操作具体的数据 并向客户端返回操作结果
每一个运行着的程序也被称为一个进程 进程id 叫做 pid
服务器进程 为 mysqld
客户端进程为 mysql
一定要记住安装目录
- /usr/local/mysql 苹果操作系统的目录
- C:\Program Files\MySQL\MySQL Server 5.7
bin目录下的可执行文件
+ mysql
+ mysql.server
+ mysqladmin
+ mysqlbinlog
+ mysqlcheck
+ mysqld
+ mysqld_multi
+ mysqld_safe
+ mysqldump
+ mysqlimport
+ mysqlpump
+ ...
环境变量是一系列路径的集合
+ -h 域名或者ip地址
+ -u 用户名
+ -p 密码
+ 退出的三个命令 quit/exit/\q
+ -P 指定不同的端口号
退出命令 quit exit \q
tcp/ip 取值范围 0-65535 ip地址和端口号的方式与进程进行通信
命名管道和共享内存
- 连接管理
- 解析与优化(查询缓存 语法解析 查询优化)
- 存储引擎
mysql的缓存系统 会监测涉及到的每张表 只要该表的结构或者数据被修改 如对该表使用了 insert update delete truncate table alter drop drop database
使用该表的所有高速缓存查询都将变为无效并从告诉缓存中删除
- archive 数据存档
- blackhole 丢弃写操作 读操作会返回空内容
- csv 以逗号分隔各个数据项
- federated 访问远程表
- innodb 具备外键支持功能的事务存储引擎
- memory 置于内存的表
- merge 管理多个myisam表构成的表集合
- myisam 主要的非事务处理存储引擎
- ndb 集群专用存储引擎
+ show engines;
+ alter table table_name engine=engine_name;
+ show create table table_name\G;