mysql,mysqld,数据库的概念理解,为什么要有数据库,主流数据库,mysql架构介绍,存储引擎介绍,sql语句的分类,查看存储引擎(\G)

news2024/12/26 15:26:14

目录

概念理解

mysql

狭义

广义 

CS模式

mysqld

守护进程 (daemon)

数据库服务

数据库

一般

广义上

数据库

为什么要有数据库

主流数据库​​​​​​​

mysql架构

第一层 -- 链接池

第二层 -- 翻译

第三层 -- 存储引擎​​​​​​​

存储引擎介绍

总结

sql语句分类

DDL(data definition language)

DML(data manipulation language)

DQL(data query language)

DCL(Data Control Language)

查看存储引擎

show engines

\G

常用的存储引擎


概念理解

mysql

狭义

数据库服务的客户端

广义 

基于CS模式的一种网络服务,用于给用户提供数据存取服务

CS模式

C是指Client,S是指Server

CS模式就是指客户端/服务器模式

 

mysqld

  • 数据库服务的服务器端,也就是它会作为数据库网络服务的后台
  • "d"用于指明它是守护进程
守护进程 (daemon)
  • 一种在后台执行,而不由用户直接交互控制的电脑程序
  • 守护进程程序的名称通常以字母d结尾,以指明这个进程实际是守护进程,并与普通的电脑程序区分开来 

 

数据库服务

指的是mysqld

数据库

一般

  • 在磁盘 / 内存中存储的特定结构组织的数据
  • 也就是 -- 在磁盘上存储的一套数据库方案(也就是数据库文件)

广义上

指的是下面这一整套服务:

  • mysql客户端接收到指令后,发送给mysqld后台,后台经过分析,去访问磁盘上的结构
  • 从磁盘拿到数据,返回给后台,mysqld后台又经过处理,返回给mysql客户端

 

数据库

为什么要有数据库

  • 数据库是用来存放数据的,但是,文件不是也可以吗,为什么还要设计出数据库呢?
  • 那自然是因为数据库能实现文件不具有的功能
  • 文件只提供了基础管理功能 -- 虽然我们可以查找到文件属性和内容,但是,对于内容的管理必须由程序员自己做
  • 比如,在一堆数据中查找到自己需要的内容,数据量越大,查找的过程就越困难
  • 以下是文件的一些缺点:
  • 所以,数据库就是对这块功能打的补丁,它是对数据内容存储的一套解决方案,可以提供对内容的管理能力


 

主流数据库​​​​​​​

  • SQL Sever: 微软的产品,.Net程序员的最爱,中大型项目
  • Oracle 甲骨文产品,适合大型项目,复杂的业务逻辑,并发一般来说不如MySQL
  • MySQL:世界上最受欢迎的数据库,属于甲骨文,并发性好,不适合做复杂的业务,主要用在电 商,SNS,论坛。对简单的SQL处理效果好
  • PostgreSQL :加州大学伯克利分校计算机系开发的关系型数据库,不管是私用,商用,还是学术研究使用,可以免费使用,修改和分发
  • SQLite: 是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C中。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了
  • H2: 是一个用Java开发的嵌入式数据库,它本身只是一个类库,可以直接嵌入到应用项目中

不同的数据库,适用于不同的使用场景,其中,mysql的使用最为广泛

mysql架构

​​​​​​​

第一层 -- 链接池

完成链接管理,认证权限,安全处理等工作

第二层 -- 翻译

  • 将收到的mysql语句进行词法/语法分析
  • 对某些语句进行优化
  • 然后根据协议,将语句传达给下一层
  • (和编译期间所做的工作类似)

第三层 -- 存储引擎​​​​​​​

  • 将收到的sql语句进行解释,然后去访问实际的结构/文件系统
  • (实际干事的,类似于计算机中的驱动)
存储引擎介绍
  • 是数据库管理系统如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方法​​​​​​​
  • 注意看这里的插头:
  • 指的是存储引擎支持插件式使用 --  MySQL 核心就是插件式存储引擎支持多种存储引擎
  • 不同的存储引擎,适用于不同类型的数据/不同的场景

 

总结

  • 所以,总结来看,数据库其实是个文件系统,它可以对数据进行管理
  • 只不过,它是一个[在系统层面之上]的用户级文件系统

sql语句分类

DDL(data definition language)

  • 数据定义语言,用来维护存储数据的结构
  • 代表指令: create, drop, alter

DML(data manipulation language)

  • 数据操纵语言,用来数据进行操作
  • 代表指令: insertdeleteupdate

DQL(data query language)

  • 数据查询语言
  • 代表指令: select

DCL(Data Control Language)

  • 数据控制语言,主要负责权限管理和事务
  • 代表指令: grantrevokecommit

 

查看存储引擎

show engines

\G

加上\G选项后,可以格式化显示

(注意,这里的结尾不需要加;)

常用的存储引擎

经过各种功能是否支持的对比,下面两种存储引擎是最常用的:

  • innodb
  • myisam

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1327050.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ansible的脚本—playbook剧本

目录 目录 一、playbook 1、简介 2、playbook组成部分: 3、如何编写Playbook? 4、语句的横向/纵向写法 二、playbook实例: 1、playbook模版: 2、playbook的条件判断: 3、playbook中的循环: 4、循…

【已解决】taos时序数据库3.0版本,怎么按照时间分组?

taos数据库中按照时间分组,在2.4版本时候可以直接使用INTERVAL(time_unit)来查询。例如 前面可以直接添加_ts的。但是在3.0版本之后,如果直接使用的话,只会返回count: 没有前面的时间。那么在3.0版本时候,怎么修改呢&a…

Ubuntu18.04、CUDA11.1安装TensorRT

最近想试试推理加速,因为跑的预测有点慢,一开始是打算从数据处理上实现,采用并行数据处理,但是这个有所难度,而且有几张显卡可用,就想着怎么把显卡利用上。而且了解到推理加速后,就先尝试一下看…

Github项目推荐:在线rename

项目地址 GitHub - JasonGrass/rename: 在线文件批量重命名 项目简介 一个开源的在线重命名文件工具。利用了新的浏览器API获取文件句柄,在不上传文件的情况下对文件进行重命名。可以作为前端文件操作api学习范例。 项目截图

HTML5刷题笔记

在 HTML5 中,onblur 和 onfocus 是:事件属性 onblur 和 onfocus 属于焦点事件: onblur:失去焦点 onfocus:获取焦点 HTML5事件window 事件属性 针对 window 对象触发的事件: onafterprint script 文档…

【Chrome】ERR_SSL_PROTOCOL_ERROR问题

文章目录 前言一、下载二、使用步骤总结 前言 Edge升级最新版后,有的https访问不了,报如下错误 发现新版Chrome以及Chromium内核访问nginx ssl时报错,顺着这个思路接着查看到大佬的结论:服务器nginx使用的openssl版本过低&#…

新下载的Redis启动任务管理器不显示服务

遇到问题:刚刚下载的Redis解压后启动,在任务管理器无法找到Redis服务 但是Redis确实是启动的 解答: 那是因为还需要使用管理员的身份打开终端运行安装一次 命令如下: redis-server.exe --service-install redis.windows.conf --…

Ubuntu 常用命令之 reboot 命令用法介绍

📑Linux/Ubuntu 常用命令归类整理 reboot命令在Ubuntu系统中用于重新启动系统。这个命令通常需要管理员权限才能执行。 reboot命令的参数如下 -f 或 --force:强制重启,不调用shutdown -r进行友好重启。-p 或 --poweroff:在重启…

7-1 单身狗(PTA - 数据结构)

由于这道题在留的作业中,排序和查找都有,所以我先写这道题(图的先放放) “单身狗”是中文对于单身人士的一种爱称。本题请你从上万人的大型派对中找出落单的客人,以便给予特殊关爱。 输入格式: 输入第一行…

【Earth Engine】协同Sentinel-1/2使用随机森林回归实现高分辨率相对财富(贫困)制图

目录 1 简介与摘要2 思路3 效果预览4 代码思路5 完整代码6 后记 1 简介与摘要 最近在做一些课题,需要使用Sentinel-1/2进行机器学习制图。 然后想着总结一下相关数据和方法,就花半小时写了个代码。 然后再花半小时写下这篇博客记录一下。 因为基于多次拍…

二叉搜索树(AVL树,红黑树)+封装

就像学习其他的东西一样,首先我们要知道二叉搜索树的作用和定义是什么! 首先顾名思义,二叉搜索树肯定是被用来为搜索服务的数据结构。 并且它的搜索效率可以达到logN,也就是一百万的数据也只用查找几十次(AVL树可以控制在20次左…

日常工作中常用的抓包工具都有哪些呢?

📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:欢迎加入我们一起学习!📢资源分享:耗时200小时精选的「软件测试」资…

电子合同的分类有哪些?

1、从电子合同订立的具体方式的角度,可分为利用电子数据交换订立的合同和利用电子邮件订立的合同; 2、从电子合同标的物的属性的角度,可分为网络服务合同、软件授权合同、需要物流配送的合同等; 3、从电子合同当事人的性质的角度…

使用Gitee中的CI/CD来完成代码的自动部署与发布(使用内网穿透把本地电脑当作服务器使用)

📚目录 📚简介:⚙️ 所需工具:💨内网穿透配置💭工具介绍✨命令安装🎊配置Cpolar🕳️关闭防火墙🥛防火墙端口放行规则(关闭防火墙可以忽略)🍬小章总…

【python】作用域与闭包 || global与nonlocal

python作用域 其他语言的作用域:块级、函数、类、模块、包等由小到大的级别但是python没有块级(if语句块、for语句块),所以if中定义的变量,相当于普通语句 >>> if True: # if语句块没有作用域x …

华为云之ECS云产品快速入门

华为云之ECS云产品快速入门 一、ECS云服务器介绍二、本次实践目标三、创建虚拟私有云VPC1.虚拟私有云VPC介绍2.进入虚拟私有云VPC管理页面3.创建虚拟私有云4.查看创建的VPC 四、创建弹性云服务器ECS——Linux1.进入ECS购买界面2.创建弹性云服务器(Linux)——基础配置步骤3.创建…

如何使用 templ 在 Go 中编写 HTML 用户界面?

关注公众号【爱发白日梦的后端】分享技术干货、读书笔记、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力! 简介 templ 是一个在 Go 中编写 HTML 用户界面的语言。使用 templ,我们可以创建可呈现 HTML 片段的组件&#xff0c…

基于改进YOLOv7的绝缘子缺陷检测算法

摘要 现有的检测方法面临着巨大的挑战,在识别绝缘子的微小缺陷时,针对输电线路图像与复杂的背景。为保证输电线路的安全运行,提出一种改进的YOLOv 7模型,以提高检测结果。 首先,基于K-means对绝缘子数据集的目标盒进…

Redis“垃圾”过期死键管理与优化

【作者】付磊 Redis死键的定义不尽相同,通常有两种: 写到Redis里后,由于过期时间过长或者压根没有过期时间,加之长期不访问,这类key可以被称为死键。 明明已经过了过期时间,但还占用Redis内存&#xff08…

利用tf-idf对特征进行提取

TF-IDF是一种文本特征提取的方法,用于评估一个词在一组文档中的重要性。 一、代码 from sklearn.feature_extraction.text import TfidfVectorizer import numpy as npdef print_tfidf_words(documents):"""打印TF-IDF矩阵中每个文档中非零值对应…