当前位置: 首页 > news >正文

Mysql(一)架构、存储引擎、数据结构

目录

  • 一、mysql架构
  • 二、存储引擎
  • 三、数据类型

在这里插入图片描述

一、mysql架构

与其它数据库相比,MySQL的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离,可以根据业务的需求和实际需要选择合适的存储引擎。
在这里插入图片描述

  • 连接层:上层是客户端和连接服务。主要完成一些类似于连接处理、授权认证、及相关的安全方案
  • 服务层:主要完成大部分的核心服务功能, 包括查询解析、分析、优化、缓存、以及所有的内置函数,所有跨存储引擎的功能也都在这一层实现,包括触发器、存储过程、视图等。
  • 引擎层:存储引擎真正的负责了MySQL中数据的存储和提取,服务器通过API与存储引擎进行通信
  • 存储层:要是将数据存储在运行于该设备的文件系统之上,并完成与存储引擎的交互

二、存储引擎

  • 概念:存储引擎是MySQL的组件,用于处理不同表类型的SQL操作。
  • 区别:不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。
  • 用处:一个数据库中多个表可以使用不同引擎以满足各种性能和实际需求
  • mysql:MySQL服务器使用可插拔的存储引擎体系结构,可以从运行中的 MySQL 服务器加载或卸载存储引擎 。
  • 常见引擎:InnoDB(MySQL默认)、MyISAM、Memory、NDB。
对比项MyISAMInnoDB
主外键不支持支持
事务不支持支持
行表锁表锁,不适合高并发操作行锁,适合高并发
缓存缓存索引,不缓存真实数据缓存索引和数据,对内存要求高,内存大小对性能有决定性影响
表空间
关注点性能事务
默认安装

三、数据类型

  • 整数类型:BIT、BOOL、TINY INT、SMALL INT、MEDIUM INT、 INT、 BIG INT
  • 浮点数类型:FLOAT、DOUBLE、DECIMAL
  • 字符串类型:CHAR、VARCHAR、TINY TEXT、TEXT、MEDIUM TEXT、LONGTEXT、TINY BLOB、BLOB、MEDIUM BLOB、LONG BLOB
  • 日期类型:Date、DateTime、TimeStamp、Time、Year
  • 其他数据类型:BINARY、VARBINARY、ENUM、SET、Geometry、Point、MultiPoint、LineString、MultiLineString、Polygon、GeometryCollection等

CHAR 和 VARCHAR 的区别?

  1. char是固定长度,varchar长度可变
  2. char不论实际存储的字符数都会占用n个字符的空间
  3. 而varchar只会占用实际字符应该占用的字节空间加1(实际长度length,0<=length<255)或加2(length>255).因为varchar保存数据时除了要保存字符串之外还会加一个字节来记录长度(如果列声明长度大于255则使用两个字节来保存长度)。
  4. 存储时,varchar回根据实际存储的数据分配最终的存储空间
  5. char(n),varchar(n)中的n都代表字符的个数
  6. 超过char,varchar最大长度n的限制后,字符串会被截断。
  7. 存储的最大空间限制不一样:char的存储上限为255字节。
  8. char在存储时会截断尾部的空格,而varchar不会。
  9. char是适合存储很短的、一般固定长度的字符串

列的字符串类型可以是什么?
字符串类型是:SET、BLOB、ENUM、CHAR、TEXT、VARCHAR

BLOB和TEXT有什么区别?

  1. BLOB是一个二进制对象,可以容纳可变数量的数据。有四种类型的BLOB:TINYBLOB、BLOB、MEDIUMBLO和 LONGBLOB
  2. TEXT是一个不区分大小写的BLOB。四种TEXT类型:TINYTEXT、TEXT、MEDIUMTEXT 和 LONGTEXT。
  3. BLOB 保存二进制数据,TEXT 保存字符数据。

相关文章:

Mysql(一)架构、存储引擎、数据结构

目录一、mysql架构二、存储引擎三、数据类型一、mysql架构 与其它数据库相比&#xff0c;MySQL的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上&#xff0c;插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离&#xff0c;可…...

php 项目网站怎么实现负载均衡?

负载均衡是一种通过分担请求以保证系统可用性和稳定性的技术。在 PHP 项目网站中&#xff0c;可以使用以下几种方法实现负载均衡&#xff1a;软件负载均衡&#xff1a;使用软件如 HAProxy、Nginx 等实现负载均衡&#xff0c;将请求转发到多个后端服务器上。硬件负载均衡&#x…...

win11+pytorch1.7.0+python3.8(也可以是python3.7)+cuda11.0

win11pytorch1.7.0python3.8cuda11.0写在最前面一. 软件配备二. 创建虚拟环境2.1 创建环境名称&#xff0c;并选择‘y’2.2.进入虚拟环境三. 安装pytorch四. 安装虚拟环境下的notebook4.1 安装ipykernel&#xff0c;并选择‘y’&#xff0c;直至安装完成4.2 将环境名注册到note…...

基于jeecgboot的flowable流程设计器的几个bug修复

因为今天在用任务监听器的时候&#xff0c;出现几个bug&#xff0c;所以一并修复与处理。 一、建立任务监听器后&#xff0c;删除不了 主要有两个原因&#xff0c;一个是点击删除没反应&#xff0c;实际上是弹出框跑到后面去了&#xff0c;说明还是z-index问题&#xff0c;调整…...

SAP MM 配置变式物料

创建一个变式物料大概需要经过一下几个阶段&#xff1b; 1、创建物料主数据&#xff08;MM01&#xff09;&#xff1b; 2、创建特性值&#xff08;CT04&#xff09;&#xff1b; 3、创建变量类&#xff08;CL02&#xff09;&#xff1b; 4、创建配置文件&#xff08;CU41&a…...

Quartz与SpringBoot 搞定任务调度

一、Quartz简介 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目&#xff0c;它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个&#xff0c;百个&#xff0c;甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java…...

SciencePlots绘图

简介 使用Python作为核心开发工具的机器学习和深度学习研究者自然会希望使用Matplotlib进行科研图表的绘制&#xff0c;但是Matplotlib默认的样式并不适合科研论文的出版&#xff0c;而SciencePlots就是为此定制的一系列科研绘图样式库&#xff0c;可以绘制很合适科研图表。 …...

【Spark分布式内存计算框架——Spark SQL】12. External DataSource(下)rdbms 数据

6.7 rdbms 数据 回顾在SparkCore中读取MySQL表的数据通过JdbcRDD来读取的&#xff0c;在SparkSQL模块中提供对应接口&#xff0c;提供三种方式读取数据&#xff1a; 方式一&#xff1a;单分区模式 方式二&#xff1a;多分区模式&#xff0c;可以设置列的名称&#xff0c;作为…...

【React】React入门--更改状态、属性、表单的非受控组件和受控组件

&#x1f380;个人主页&#xff1a;努力学习前端知识的小羊 感谢你们的支持&#xff1a;收藏&#x1f384; 点赞&#x1f36c; 加关注&#x1fa90; 文章目录setState属性(props)属性vs状态非受控组件受控组件setState this.state是纯js对象&#xff0c;在vue中&#xff0c;dat…...

0216-0218复习:继承

目录 继承 一、基本介绍 二、示意图 三、基本语法 四、入门案例 父类 子类1 子类2 main方法 五、继承细节 第一条 第二条 第三条 第四条 ​编辑 第五条 第六条 第七条 第八条 第九条 第十条 六、继承本质 七、练习题 第三题 继承 一、基本介绍 继承可以…...

【数据库】HNU数据库系统期末考试复习重点

前言 今天刚结束考试&#xff0c;考的范围基本没有超过这套重点内容&#xff0c;觉得整理的这份资料还算比较有用&#xff0c;遂睡前整理了下分享给大家&#xff0c;希望能帮到要准备数据库期末又时间紧张的学弟学妹~ 文章参考&#xff1a; 1.课程老师发《数据库期末考试复习…...

SCI论文写作常见连词及适用情况

And&#xff1a;用于连接同类或相似的词、短语或句子&#xff0c;表达并列关系。Moreover&#xff1a;用于连接两个相似或相关的想法&#xff0c;表达附加的信息或思想。Furthermore&#xff1a;用于连接两个相似或相关的想法&#xff0c;表达更进一步的信息或思想。In additio…...

Spring中的数据校验--进阶

分组校验 场景描述 在实际开发中经常会遇到这种情况&#xff1a;添加用户时&#xff0c;id是由后端生成的&#xff0c;不需要校验id是否为空&#xff0c;但是修改用户时就需要校验id是否为空。如果在接收参数的User实体类的id属性上添加NotNull&#xff0c;显然无法实现。这时…...

多种方法解决谷歌(chrome)、edge、火狐等浏览器F12打不开调试页面或调试模式(面板)的问题。

文章目录1. 文章引言2. 解决问题3. 解决该问题的其他方法1. 文章引言 不论是前端开发者&#xff0c;还是后端开发者&#xff0c;我们在调试web项目时&#xff0c;偶尔弹出相关错误。 此时&#xff0c;我们需要打开浏览器的调试模式&#xff0c;如下图所示&#xff1a; 通过浏…...

默认生成的接口实现方法体的问题

随着集成开发环境越来越强大&#xff0c;编程开发工作也变得越来越高效&#xff0c;很多的代码都不需要逐字输入&#xff0c;可以利用代码生成和自动补全来辅助开发。但是这样的便利也可能引起一些疏忽&#xff0c;本文就Java开发中默认生成的接口实现方法来谈谈以前遇到的问题…...

【OJ】十级龙王间的决斗

&#x1f4da;Description: 在《驯龙高手2》&#xff0c;最精彩的高潮出现在两只阿尔法决斗的时候。 驯龙高手中的十星龙王又称喷冰龙&#xff0c;有且只有两只&#xff0c;是最大型的龙&#xff0c;所有其他龙都要膜拜它&#xff08;当然&#xff0c;幼龙除外&#xff09;&…...

java 自定义注解

文章目录前言Annotation包自定义注解自定义注解示例参考文章&#xff1a;java 自定义注解 用处_java注解和自定义注解的简单使用参考文章&#xff1a;java中自定义注解的作用和写法前言 在使用Spring Boot的时候&#xff0c;大量使用注解的语法去替代XML配置文件&#xff0c;十…...

产品经理知识体系:2.如何进行商业需求分析?

商业需求分析 思考 笔记 用户细分&#xff1a; 核心用户、用户分级 用户关系&#xff1a; 如何维护用户关系、维护等成本 关系和商业模式的整合 核心价值&#xff1a; 解决什么问题&#xff0c;满足什么需求&#xff0c;最终带给用户什么价值 渠道通道&#xff1a; 如何触达…...

EditPlus正则表达式替换字符串详解

正则表达式是一个查询的字符串&#xff0c;它包含一般的字符和一些特殊的字符&#xff0c;特殊字符可以扩展查找字符串的能力&#xff0c;正则表达式在查找和替换字符串的作用不可忽视&#xff0c;它能很好提高工作效率。EditPlus的查找&#xff0c;替换&#xff0c;文件中查找…...

Go基础-环境安装

文章目录1 Go?Golang?2 下载Go3 windows安装4 测试是否成功1 Go?Golang? Go也称为Golang&#xff0c;是Google开发的一个开源的编译型的静态语言。 Golang的主要关注点是高可用、高并发和高扩展性&#xff0c;Go语言定位是系统级编程语言&#xff0c;对web程序具有很好的支…...

工业安全零事故的智能守护者:一体化AI智能安防平台

前言&#xff1a; 通过AI视觉技术&#xff0c;为船厂提供全面的安全监控解决方案&#xff0c;涵盖交通违规检测、起重机轨道安全、非法入侵检测、盗窃防范、安全规范执行监控等多个方面&#xff0c;能够实现对应负责人反馈机制&#xff0c;并最终实现数据的统计报表。提升船厂…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

C++.OpenGL (10/64)基础光照(Basic Lighting)

基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...

HarmonyOS运动开发:如何用mpchart绘制运动配速图表

##鸿蒙核心技术##运动开发##Sensor Service Kit&#xff08;传感器服务&#xff09;# 前言 在运动类应用中&#xff0c;运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据&#xff0c;如配速、距离、卡路里消耗等&#xff0c;用户可以更清晰…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...

关于easyexcel动态下拉选问题处理

前些日子突然碰到一个问题&#xff0c;说是客户的导入文件模版想支持部分导入内容的下拉选&#xff0c;于是我就找了easyexcel官网寻找解决方案&#xff0c;并没有找到合适的方案&#xff0c;没办法只能自己动手并分享出来&#xff0c;针对Java生成Excel下拉菜单时因选项过多导…...

LOOI机器人的技术实现解析:从手势识别到边缘检测

LOOI机器人作为一款创新的AI硬件产品&#xff0c;通过将智能手机转变为具有情感交互能力的桌面机器人&#xff0c;展示了前沿AI技术与传统硬件设计的完美结合。作为AI与玩具领域的专家&#xff0c;我将全面解析LOOI的技术实现架构&#xff0c;特别是其手势识别、物体识别和环境…...

2025年低延迟业务DDoS防护全攻略:高可用架构与实战方案

一、延迟敏感行业面临的DDoS攻击新挑战 2025年&#xff0c;金融交易、实时竞技游戏、工业物联网等低延迟业务成为DDoS攻击的首要目标。攻击呈现三大特征&#xff1a; AI驱动的自适应攻击&#xff1a;攻击流量模拟真实用户行为&#xff0c;差异率低至0.5%&#xff0c;传统规则引…...

VSCode 使用CMake 构建 Qt 5 窗口程序

首先,目录结构如下图: 运行效果: cmake -B build cmake --build build 运行: windeployqt.exe F:\testQt5\build\Debug\app.exe main.cpp #include "mainwindow.h"#include <QAppli...