MySQL学习笔记(一)

MySQL的架构

这个理解其实很简单,就是简单的客户端-服务端架构,客户端发起请求,服务端操作数据。从图中我们可以看出,服务器程序处理来自客户端的查询请求大致需要经过三个部分,分别是连接管理、解析与优化、存储引擎。

[外链图片转存失败(img-e0hj6NfT-1562667794946)(evernotecid://D6CA8B83-7C76-4893-B45E-CF81AF565AB8/appyinxiangcom/14815409/ENNote/p8?hash=e0532f7400396da2dbe5ef6fead1ec31)]

启动MySQl服务器端

mysqld

MySQL的服务器进程被称为 MySQL数据库实例。正如每一个进程都有PID做唯一标识,MySql的服务器进程默认名称是mysqld。所以在安装路径下的 mysqld这个可执行文件就是MYSQL服务器程序,运行这个可执行文件就可以直接启动一个服务器进程.

mysqld_safe

顾名思义,安全启动mysqld,即启动的同时还启动了一个监控进程,这个监控进程在服务器进程挂了的时候重启它。并且会有error log

mysql.server

语句是 mysql.server start 间接调用 mysqld_safe 同理 mysql.server stop 用来关闭服务器程序

启动MySQL客户端

mySQL的客户端五花八门,workbench,mysqladmin,mysqldump,甚至idea也有插件可以直接用,但是其实最终需要的就是下面这句
mysql -h主机名 -u用户名 -p密码
注意:只有-p和密码中间不能有空白字符,其他的参数名之间可以有空白字符,但是-p之后可以回车,再下一行隐式的输入密码。

断开客户端和服务端的连接

断开客户端和服务器的连接并且关闭客户端,以下3个指令
quit
exit
\q

客户端和服务器连接

简单来说其实就是进程间的通信

tcp\ip

mysql的服务器默认端口 3306
可以通过mysqld -P端口来重新指定端口号 注意 大写的P 小写p是密码

命名管道和共享内存

windows用户可以在启动服务器程序和客户端程序时添加参数来启用这种通信方式

  • 命名管道
    服务端:--enable-named-pipe
    客户端:--pipe或者--protocol=pipe
  • 共享内存
    服务端:--shares-memory
Unix域套接字文件

服务器进程和客户端进程都运行在同一台操作系统是Unix的机器上,就可以用Unix套接字文件来通信。怎么操作呢。启动客户端的时候指定主机名为localhost,或者启动参数 --protocol=socket.服务端默认监听的文件路径/tmp/mysql.sock 客户端也默认连接到这个Unix域套接字文件。
改变默认的Unix域套接字文件需要服务端启动时指定参数mysqld --socket=/tmp/a.txt并且客户端连接的时候--socket=/tmp/a.txt显式指定。

服务器处理客户端请求

可以分为三部分连接管理解析优化存储引擎

连接管理

上面已经说了三种连接方式,每一个客户端进程连接到服务器进程时,服务器会创建一个线程。这里有点像线程池。每一个连接过来,就从线程池中拿一个线程出来,用完了也就是客户端断开连接的时候,缓存这个线程而不是销毁,等到新的客户端的时候在分配。
连接是长连接
服务器接收到的请求只是一个文本消息,返回的结果同样也只是一个文本消息
可以用SSL进行网络连接

解析优化

服务器接收到文本之后会,需要对文本进行处理。

  • 查询缓存:MySQL服务器会把刚刚处理过的查询请求和结果缓存起了,下次有一模一样的请求过来的时候,直接存缓存找结果,这个缓存是可以在不同的客户端之间共享。如果两个查询请求有任何字符的不同 包括 空格、注释、大小写或者请求里面有系统函数、自定义变量、系统表这种,都不会命中缓存,当然如果表有任何变更了的时候,查询缓存都会失效
    MySQL8.0已经删除了查询缓存,毕竟维护缓存是需要开销的

  • 优化解析:简单来说就是一个编译的过程

  • 查询优化:MySQL的优化程序会对我们的语句进行一些优化,结果就是生成一个执行计划。比如用EXPLAIN这个语句来查看某个语句的执行计划。

存储引擎

也就是真是存取数据的功能,接受上层传下来的指令,然后对表中的数据进行提取或写入操作。
常用的存储引擎InnoDB和MyISAM
InnoDB 具备外键支持功能的事务存储引擎—默认的存储引擎
MyISAM 主要的非事务处理存储引擎
可以为不同的表设置不同的存储引擎,建表的时候指定

CREATE TABLE 表名(
    建表语句;
) ENGINE = 存储引擎名称;

或者这样修改

ALTER TABLE 表名 ENGINE = 存储引擎名称;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
目标检测(Object Detection)是计算机视觉领域的一个核心问题,其主要任务是找出图像中所有感兴趣的目标(物体),并确定它们的类别和位置。以下是对目标检测的详细阐述: 一、基本概念 目标检测的任务是解决“在哪里?是什么?”的问题,即定位出图像中目标的位置并识别出目标的类别。由于各类物体具有不同的外观、形状和姿态,加上成像时光照、遮挡等因素的干扰,目标检测一直是计算机视觉领域最具挑战性的任务之一。 二、核心问题 目标检测涉及以下几个核心问题: 分类问题:判断图像中的目标属于哪个类别。 定位问题:确定目标在图像中的具体位置。 大小问题:目标可能具有不同的大小。 形状问题:目标可能具有不同的形状。 三、算法分类 基于深度学习的目标检测算法主要分为两大类: Two-stage算法:先进行区域生成(Region Proposal),生成有可能包含待检物体的预选框(Region Proposal),再通过卷积神经网络进行样本分类。常见的Two-stage算法包括R-CNN、Fast R-CNN、Faster R-CNN等。 One-stage算法:不用生成区域提议,直接在网络中提取特征来预测物体分类和位置。常见的One-stage算法包括YOLO系列(YOLOv1、YOLOv2、YOLOv3、YOLOv4、YOLOv5等)、SSD和RetinaNet等。 四、算法原理 以YOLO系列为例,YOLO将目标检测视为回归问题,将输入图像一次性划分为多个区域,直接在输出层预测边界框和类别概率。YOLO采用卷积网络来提取特征,使用全连接层来得到预测值。其网络结构通常包含多个卷积层和全连接层,通过卷积层提取图像特征,通过全连接层输出预测结果。 五、应用领域 目标检测技术已经广泛应用于各个领域,为人们的生活带来了极大的便利。以下是一些主要的应用领域: 安全监控:在商场、银行
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值