【MySQL进阶之路】MySQL基础——从零认识MySQL

目录

主流数据库

什么是MySQL

MySQL服务

从文件系统角度理解数据库

MySQL架构

SQL语句分类

存储引擎


个人主页:东洛的克莱斯韦克-CSDN博客

主流数据库

数据库开发商特点适用场景
SQL Server微软.NET程序员的最爱,适合中大型项目企业级应用,中大型数据库解决方案
Oracle甲骨文适合大型项目,复杂的业务逻辑,但并发性一般企业级应用,复杂业务逻辑处理
MySQL甲骨文(通过收购Sun Microsystems)世界上最受欢迎的数据库,并发性好,不适合复杂业务电商,SNS,论坛,简单SQL处理
PostgreSQL加州大学伯克利分校计算机系免费使用、修改和分发,适用于私用、商用和学术研究多种应用场景,包括企业级应用
SQLite公开源代码社区轻型数据库,遵守ACID,嵌入式设计,资源占用低嵌入式设备,移动应用,小型项目
H2Java社区用Java开发的嵌入式数据库,可直接嵌入到应用项目中测试环境,小型应用,嵌入式数据库需求

什么是MySQL

MySQL是一种网络服务,有客户端和服务端。可以用 which 命令查看路径。

客户端一般在/usr/bin/mysql 路径下,服务端一般在/usr/sbin/mysqld (以d结尾的进程一般都是守护进程)路径下。

而数据存放的路径可以在/etc/my.cnf配置文件中配置,默认是/var/lib/mysql

MySQL是在文件系统的基础上搭建的一套完整的网络服务,用于高效的存储,管理数据。那存储数据用文件就可以了,为什么还要弄个数据库?

单纯用文件管理数据有如下缺点

文件的安全性并不是很可靠
文件不利于数据查询和管理
文件不利于存储海量数据
文件在程序中控制不方便

可以说,文件系统只是提供了最基础的数据保存,数据的读写功能。

MySQL服务

所谓安装数据库服务器,只是在机器上安装了一个数据库管理系统程序,这个管理程序可以管理多 个数据库,一般开发人员会针对每一个应用创建一个数据库。 为保存应用中实体的数据,一般会在数据库中创建多个表,以保存程序中实体的数据。 数据库服务器、数据库和表的关系如下:

上图中的Client是数据库的客户端。MySQL就是数据库的服务端,一般会以守护进程的方式一直在服务器上监听外来请求。客户端用SQL语句向服务端发起请求,而服务端解析SQL语句,然后对数据进行管理相关的工作。

我们平常所说的数据库既不是指的客户端,也不是指的服务端,而是上图中的DB。而DB中的表结构存的就是数据。

从文件系统角度理解数据库

所谓的所谓的数据库(DB)和表结构到底是什么呢?

前文已经提到数据存放的路径在/var/lib/mysql。那么我们创建一个数据库,再创建一张表,/var/lib/mysql路径下会有什么变化呢?

创建数据库的SQL语句

create database helloworld;

使用数据库的SQL语句

use helloworld;

创建数据库表的SQL语句

create table student(
id int,
name varchar(32),
gender varchar(2)
);

我们用上述语句创建一个helloworld的数据库,再向helloworld数据库中建一张student表

先创建数据库,看看/var/lib/mysql目录下的变化

创建数据库后多了一个helloworld目录,进入到helloworld目录,再创建student表看看变化

创建student表之后,在helloworld目录下多了一些student表相关的文件。

从文件系统角度讲,创建数据库就是在系统中创建目录,创建表结构就是在该目录下创建相关文的件。

MySQL架构

文件系统对MySQL来说只是最底层的东西,或者说是基石。现在来谈一谈MySQL的架构。

MySQL 是一个可移植的数据库,几乎能在当前所有的操作系统上运行,如 Unix/Linux、Windows、 Mac 和 Solaris。各种系统在底层实现方面各有不同,但是 MySQL 基本上能保证在各个平台上的物理体 系结构的一致性。

MySQL架构主要分为几个关键部分,包括客户端连接器、SQL接口、服务(包括连接池、认证和安全性、备份与恢复等)、优化器、缓存以及存储引擎。

客户端连接器
这是MySQL与外部应用程序之间的接口。支持多种编程语言和数据库接口标准,如JDBC、ODBC、NET、PHP、Python、Perl和C API等。这使得MySQL能够灵活地与各种编程语言和环境集成。
服务
连接池:管理到MySQL服务器的连接,以优化资源使用和响应时间。
连接处理:处理来自客户端的连接请求。
身份验证和安全:对客户端进行身份验证,并根据授权确保数据的安全性。
备份与恢复:提供数据备份和恢复功能,以保护数据免受丢失或损坏的风险。

SQL接口
这是MySQL架构中的核心部分,它解析来自客户端的SQL语句,并执行相应的操作。SQL接口还包括优化器、解析器、重写器等多个组件,以优化查询执行和性能。
优化器:根据查询条件和统计信息,生成高效的查询执行计划。
解析器:解析SQL语句,生成解析树,用于后续处理。
重写器:对SQL语句进行重写,以提高查询效率或符合特定优化目标。

存储引擎
MySQL采用插件式存储引擎架构,支持多种存储引擎,如InnoDB、MyISAM、Memory、Archive等。每种存储引擎都有其特点和适用场景,例如InnoDB支持事务处理、行级锁定和外键约束,是MySQL的默认存储引擎。
索引:用于加快数据检索速度,MySQL支持多种索引类型,如B-Tree索引、哈希索引等。

文件系统和存储
MySQL将数据存储在文件系统中,可以是传统的硬盘、SSD、网络存储(如SAN、NAS)等。
提供了日志文件(如错误日志、慢查询日志、二进制日志等)来记录操作和数据变化,用于审计、恢复和数据复制等功能。

SQL语句分类

类别缩写描述代表指令
数据定义语言DDL用来维护存储数据的结构create, drop, alter
数据操纵语言DML用来对数据进行操作insert, delete, update
数据查询语言DQL专门用于数据查询(属于DML的子集)select
数据控制语言DCL主要负责权限管理和事务grant, revoke, commit

存储引擎

可用如下命令查看存储引擎

show engines;
存储引擎特点适用场景
MyISAM- 不支持事务<br>- 表级锁定<br>- 支持全文索引<br>- 可能有存储限制(取决于操作系统和文件系统)读密集型应用,如Web内容展示、简单查询操作
BDB (Berkeley DB)- 支持事务<br>- 可能支持表级或页级锁定(取决于版本和配置)<br>- 具有高级特性如热备份、恢复和复制较少使用,部分MySQL版本可能不再支持或推荐使用BDB
Memory- 数据完全存储在内存中<br>- 不支持事务<br>- 表级锁定<br>- 大小受可用内存限制临时数据、缓存或需要极快访问速度的小数据集
InnoDB- 默认存储引擎<br>- 支持ACID事务处理<br>- 行级锁定<br>- 支持MVCC<br>- 支持外键约束<br>- 强大的崩溃恢复功能需要高并发、事务处理、外键约束和复杂查询的应用
Archive- 压缩存储以节省空间<br>- 不支持索引(除主键外)<br>- 主要用于存档日志记录、历史数据存档等
NDB (MySQL Cluster NDB)- 分布式存储<br>- 自动分片<br>- 实时数据同步<br>- 高可用性、数据冗余和负载均衡需要高可用性和可扩展性的分布式数据库应用

【linux】信号的理论概述和实操-CSDN博客

【linux】详解——库-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mapreduce_wordcount自定义单词计数

自定义的wordcount 数据处理过程 加载jar包 查看后面的pom文件 以上为需要的jar包路径&#xff0c;将其导入至idea中 Map package com.hadoop;import org.apache.hadoop.io.IntWritable; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.Text; im…

电动汽车和混动汽车DC-DC转换器的创新设计与测试方法

汽车 DC-DC 转换器市场规模将达到187亿美元&#xff0c;年复合增长率为10%。 DC-DC 转换器是汽车的重要组成部分&#xff0c;它可以通过电压转换为各种车载系统供电&#xff0c;例如日益复杂的车载信息娱乐系统、使用驾驶辅助系统&#xff08;ADAS&#xff09;实现的增强安全功…

灵办AI免费ChatGPT4人工智能浏览器插件快速便捷(多功能)

灵办AI就是您所需的最佳助手&#xff01;我们为您带来了一款多功能AI工具&#xff0c;不仅能为您提供精准翻译&#xff0c;还能满足您的对话需求、智能续写、AI搜索、文档阅读、代码生成与修正等多种需求。灵办 AI&#xff0c;真正让工作和学习变得轻松高效&#xff01; 推荐使…

人工智能在网络安全威胁测试中的应用:LLMs如何改变网络威胁格局

一、引言 随着人工智能技术的快速发展&#xff0c;特别是大型语言模型&#xff08;LLMs&#xff09;的崛起&#xff0c;网络安全领域也迎来了新的变革。LLMs不仅在自然语言处理方面展现出惊人的能力&#xff0c;还在网络安全威胁测试中显示出巨大的潜力。本文旨在探讨LLMs在网…

【区块链+乡村振兴】链上云仓智慧动产监管平台 | FISCO BCOS应用案例

2021 年初 ,《中共中央国务院关于全面推进乡村振兴加快农业农村现代化的意见》将“乡村振兴”的重要性提升 到前所未有的战略高度。而随着科技与金融的深度融合&#xff0c;金融行业亦开始步入大数据、云计算、人工智能、区块 链的新技术发展。启动金融科技赋能乡村振兴示范工程…

微信小程序--24(列表渲染)

一、wx&#xff1a;for 1.作用 根据指定数组&#xff0c;循环渲染重复的组件结构 2.语法 <view wx:for"{{data中的数据}}"> 索引是&#xff1a;{{index}}, item项是&#xff1a;{{item}}</view> index:表索引item&#xff1a;表当前循环项 …

<数据集>骑行头盔识别数据集<目标检测>

数据集格式&#xff1a;VOCYOLO格式 图片数量&#xff1a;5026张 标注数量(xml文件个数)&#xff1a;5026 标注数量(txt文件个数)&#xff1a;5026 标注类别数&#xff1a;3 标注类别名称&#xff1a;[helmet, without_helmet, two_wheeler] 序号类别名称图片数框数1helm…

轻空间成功承建马来西亚吉隆坡多功能气膜馆

近期&#xff0c;轻空间&#xff08;江苏&#xff09;膜结构科技有限公司顺利完成了马来西亚吉隆坡多功能气膜馆的建设工作。这一项目是轻空间在海外市场的又一重大突破&#xff0c;不仅展现了公司在国际气膜结构领域的卓越技术实力&#xff0c;也进一步巩固了轻空间作为全球领…

IDEA关键词全局检索-之jar包

正常没有下载到源码的jar包&#xff0c;是无法检索到.class编译文件中内容的 repository本地仓库中&#xff0c;也是没有源码的 《检索步骤》 1、首先&#xff0c;下载源码 - 可以配置maven自动下载所有jar包的源码&#xff08;再同样配置File-NewProjectsSetup-Settingsfor…

u-picker 点击遮罩层 无法关闭的原因,尤其要注意最后一点

u-view 组件 u-picker 点击遮罩层无法关闭问题 &#xff08;说实话uview的文档写的真的一般&#xff0c;跟pc端的完全不能比啊&#xff09; 三个需要注意的点 1. 需要添加 closeOnClickOverlay 属性 <u-picker :show"show" :columns"columns" keyNam…

C# 不一样的洗牌算法---Simd指令

洗牌算法&#xff0c;以随机打乱数组中元素的位置 测试数据创建 int[] _data; Random rng new Random(); protected override void CreateData() {_data new int[_size];for (int i 0; i < _data.Length; i){_data[i] i;} } 普通打乱数组元素位置 protected overrid…

如何跳过极狐GitLab 密钥推送保护功能?

极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门面向中国程序员和企业提供企业级一体化 DevOps 平台&#xff0c;用来帮助用户实现需求管理、源代码托管、CI/CD、安全合规&#xff0c;而且所有的操作都是在一个平台上进行&#xff0c;省事省心省钱。可以一键安装极狐GitL…

函数(子程序)的常见、易混淆概念详解【对初学者有帮助】

C语⾔中的函数也被称做子程序&#xff0c;意思就是⼀个完成某项特定的任务的⼀小段代码。 C语⾔标准中提供了许多库函数&#xff0c;点击下面的链接可以查看c语言的库函数和头文件。 C/C官⽅的链接&#xff1a;https://zh.cppreference.com/w/c/header 目录 一、函数头与函…

springBoot框架

使用springmvc框架&#xff0c;除了引入相关的依赖&#xff0c;还需要手动配置spring对象和springmvc对象&#xff0c;这个过程使用xml文件编写实现&#xff0c;最后在web的配置文件中引入这两个对象。 要实现dispatcherServelet的组件功能&#xff0c;还得在springmvc容器中手…

redis事件机制

redis服务器是一个由事件驱动(死循环)的程序&#xff0c;它总共就干两件事&#xff1a; 文件事件&#xff1a;利用I/O复用机制&#xff0c;监听Socket等文件描述符发生的事件&#xff0c;如网络请求时间事件&#xff1a;定时触发的事件&#xff0c;负责完成redis内部定时任务&…

智能语音识别技术在无人驾驶领域的应用案例

随着无人驾驶技术的进步与发展&#xff0c;越来越多的企业、创业者注意到无人驾驶领域潜藏的巨大市场经济价值&#xff0c;越来越多的企业和创业者进入无人驾驶领域&#xff0c;以近期业内关注的萝卜快跑为例&#xff0c;其在武汉地区的成功推广与落地预示着无人驾驶在网约车领…

基于价值流DevSecOps效能案例分享

背景 数字经济时代&#xff0c;企业数字化转型加速&#xff0c;软件业务收入目标设定&#xff0c;产业基础保障水平提升。DevSecOps: 作为解决交付能力挑战的方法&#xff0c;强调开发&#xff08;Dev&#xff09;、安全&#xff08;Sec&#xff09;、运维&#xff08;Ops&…

水仙花语:花中情诗,心灵低语

一、水仙花语的丰富内涵 水仙花的花语丰富多样&#xff0c;其中“纯洁”是其最为显著的象征之一。水仙花洁白无瑕的花瓣&#xff0c;宛如纯洁无暇的心灵&#xff0c;给人以清新、高雅之感。这种纯洁不仅体现在花朵的外观上&#xff0c;更蕴含着一种纯净、美好的精神内涵&#x…

UE虚幻引擎可以云渲染吗?应用趋势与挑战了解

虚幻云渲染技术是基于虚幻引擎的云端渲染技术&#xff0c;将虚幻引擎的渲染计算任务通过云计算的方式进行处理和渲染、并将渲染结果传输到终端设备上进行展示。虚幻引擎云渲染技术在近年来得到了迅猛的发展&#xff0c;并在各个领域得到了广泛的应用&#xff0c;包括游戏、电影…

base SAS programming学习笔记(date和time格式)

1.MMDDYYw.或者MMDDYYYYw. mm表示月份&#xff0c;dd表示日期&#xff0c;yyyy表示年份可以是2位数也可以是4位数&#xff1b;数据可以是空格或“/”或“-”连接&#xff0c;w表示宽度包括连接符号的宽度。举例如下&#xff1a; 2.DATEw. 格式如下&#xff1a;DDMMMYYw.或者DDM…