1. 数据库基础

news2025/6/6 19:45:49

1.1 什么是数据库 ⭐

mysql 本质是一种网络服务, 是基于 C(mysql) S(mysqld)的 网络服务.
存储数据用文件就可以了,为什么还要弄个数据库?文件保存数据存在以下缺点:
  • 文件的安全性问题。
  • 文件不利于数据查询和管理。
  • 文件不利于存储海量数据。
  • 文件在程序中控制不方便。
数据库存储介质有 磁盘内存
为解决上述问题,专家们设计出数据库,它能更有效地管理数据,数据库的掌握水平是衡量程序员水平的重要指标。

1.2 主流数据库

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

1.3.1 MySQL安装

  • Centos 6.5下编译安装MySQL 5.6.14。
  • CentOS 7通过yum安装MariaDB。
  • Windows下安装MySQL5.7。

1.3.2 连接服务器

输入: mysql -h 127.0.0.1 -P 3306 -u root -p
输出:
Enter password: **** Commands end with;or \g. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.21-log MySQL Community Server (GPL) Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
注意:
  • 如果未写-h 127.0.0.1,默认连接本地。
  • 如果未写-P 3306,默认连接3306端口号(在.conf 默认配置里)。

1.3.3 服务器管理

执行 win + r,输入 services.msc打开服务管理器,通过服务管理器左侧的停止、暂停、重启动按钮进行服务管理。

1.3.4 服务器、数据库、表关系 ⭐

安装数据库服务器,实际上是在机器上安装了一个数据库管理系统程序,该程序可管理多个数据库。一般开发人员会 针对每个应用创建一个数据库。为保存应用中实体的数据,通常会在数据库中创建多个表。数据库服务器、数据库和表的关系为: 数据库服务器管理多个数据库,每个数据库包含多个表

1.4 MySQL架构 ⭐

MySQL是一个 可移植 的数据库,几乎能在当前所有的操作系统上运行,如Unix/Linux、Windows、Mac和Solaris。虽然各种系统在底层实现方面有所不同,但 MySQL基本能保证在各个平台上的物理体系结构的一致性。
MySQL架构主要分为以下几层:
  1. 连接层:负责管理客户端连接,支持多种连接协议。进行用户身份验证和权限管理,决定用户能对数据库进行哪些操作。还管理连接池,提高连接复用,减少资源消耗,以应对高并发请求。
  2. 服务层:对SQL语句进行解析,检查语法和语义是否正确。优化SQL执行计划,选择最优执行方式,提高查询效率。执行SQL语句,调用存储引擎接口来操作数据。同时,还提供查询缓存功能,缓存查询结果,减少重复查询的开销。
  3. 存储引擎层:负责数据的存储和读取。MySQL有多种存储引擎,如InnoDB、MyISAM等,各有特点和适用场景,用户可根据需求选择,不同存储引擎通过统一接口与服务层交互
  4. 文件系统层:包含日志文件,用于记录数据库运行中的错误、慢查询等信息,方便排查问题和优化性能。还包含数据文件,用于存储数据库的实际数据。
这么多存储引擎? 适应各种类型的数据/文件. MyISAM: 大文本读取InnoDB: 索引支持...系统视角: 上层是用户层, 而下面是OS kernel 系统网络视角: 上层是应用层, 下面是内核层

1.5 SQL分类 ⭐

  • DDL(Data Definition Language)数据定义语言(结构):用来维护存储数据的结构,代表指令有createdropalter
  • DML(Data Manipulation Language)数据操纵语言(内容):用来对数据进行操作,代表指令有insertdeleteupdate。DML中又单独分出一个DQL(数据查询语言),代表指令是select
  • DCL(Data Control Language)数据控制语言(权限):主要负责权限管理和事务,代表指令有grantrevokecommit

1.6 存储引擎

1.6.1 存储引擎

存储引擎是数据库管理系统存储数据、为存储的数据建立索引以及更新、查询数据等技术的实现方法。
MySQL的核心是 插件式存储引擎,支持多种存储引擎。

1.6.2 查看存储引擎

show engines;

1.6.3 存储引擎对比(拓展)

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

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

相关文章

英伟达288GB HBM4+50P算力

英伟达CEO黄仁勋在COMPUTEX 2025上突然官宣:以暗物质研究先驱Vera Rubin命名的新一代AI芯片即将量产!这颗被称作“算力巨兽”的Rubin GPU,不仅搭载288GB HBM4显存和50 Petaflops推理算力,更携三大颠覆性技术直击AI行业痛点。更可怕…

综合案例:斗地主

综合案例:斗地主 1.程序概述 这是一个模拟斗地主游戏发牌过程的C语言程序,实现了扑克牌的初始化、洗牌和发牌功能。 2.功能需求 2.1 扑克牌定义 使用结构体 Card 表示一张牌,包含: 花色属性suit(0-3表示普通花色♥…

前端组件推荐 Swiper 轮播与 Lightbox 灯箱组件深度解析

在互联网产品不断迭代升级的今天,用户对于页面交互和视觉效果的要求越来越高。想要快速打造出吸睛又实用的项目,合适的组件必不可少。今天就为大家推荐两款超好用的组件 ——Swiper 轮播组件和 Lightbox 灯箱组件,轻松解决你的展示难题&#…

Deepfashion2 数据集使用笔记

目录 数据类别: 筛选类别数据: 验证精度筛选前2个类别: 提取类别数据 可视化类别数据: Deepfashion2 的解压码 旋转数据增强 数据类别: 类别含义: Class idx类别名称英文名称0短上衣short sleeve top1长上衣long sleeve top2短外套short sleeve outwear3长外套lo…

Dify知识库下载小程序

一、Dify配置 1.查看或创建知识库的API 二、下载程序配置 1. 安装依赖resquirements.txt ######requirements.txt##### flask2.3.3 psycopg2-binary2.9.9 requests2.31.0 python-dotenv1.0.0#####安装依赖 pip3 install -r requirements.txt -i https://pypi.tuna.tsinghua.…

数据库中求最小函数依赖集-最后附解题过程

今天来攻克数据库设计里一个超重要的知识点 —— 最小函数依赖集。对于刚接触数据库的小白来说,这概念可能有点绕,但别担心,咱们一步步拆解,轻松搞定💪! (最后fuyou) 什么是最小函数…

嵌入式系统中常用的开源协议

目录 1、GNU通用公共许可证(GPL) 2、GNU宽松通用公共许可证(LGPL) 3、MIT许可证 4、Apache许可证2.0 5、BSD许可证 6、如何选择合适的协议 在嵌入式系统开发中,开源软件的使用已成为主流趋势。从物联网设备到汽车…

第二篇:Liunx环境下搭建PaddleOCR识别

第二篇:Liunx环境下搭建Paddleocr识别 一:前言二:安装PaddleOCR三:验证PaddleOCR是否安装成功 一:前言 PaddleOCR作为业界领先的多语言开源OCR工具库,其核心优势在于深度整合了百度自主研发的飞桨PaddlePa…

复杂业务场景下 JSON 规范设计:Map<String,Object>快速开发 与 ResponseEntity精细化控制HTTP 的本质区别与应用场景解析

Moudle 1 Json使用示例 在企业开发中,构造 JSON 格式数据的方式需兼顾 可读性、兼容性、安全性和开发效率,以下是几种常用方式及适用场景: 一、直接使用 Map / 对象转换(简单场景) 通过 键值对集合(如 M…

二叉数-965.单值二叉数-力扣(LeetCode)

一、题目解析 顾名思义,就是二叉树中所存储的值是相同,如果有不同则返回false 二、算法原理 对于二叉树的遍历,递归无疑是最便捷、最简单的方法,本题需要用到递归的思想。 采取前序遍历的方法,即根、左、右。 我们…

[蓝桥杯]对局匹配

对局匹配 题目描述 小明喜欢在一个围棋网站上找别人在线对弈。这个网站上所有注册用户都有一个积分,代表他的围棋水平。 小明发现网站的自动对局系统在匹配对手时,只会将积分差恰好是 K 的两名用户匹配在一起。如果两人分差小于或大于 KK,…

Redis 持久化机制详解:RDB 与 AOF 的原理、优缺点与最佳实践

目录 前言1. Redis 持久化机制概述2. RDB 持久化机制详解2.1 RDB 的工作原理2.2 RDB 的优点2.3 RDB 的缺点 3. AOF 持久化机制详解3.1 AOF 的工作原理3.2 AOF 的优点3.3 AOF 的缺点 4. RDB 与 AOF 的对比分析5. 持久化机制的组合使用与最佳实践6. 结语 前言 Redis 作为一款高性…

【Kotlin】简介变量类接口

【Kotlin】简介&变量&类&接口 【Kotlin】数字&字符串&数组&集合 【Kotlin】高阶函数&Lambda&内联函数 【Kotlin】表达式&关键字 文章目录 Kotlin_简介&变量&类&接口Kotlin的特性Kotlin优势创建Kotlin项目变量变量保存了指向对…

Mybatis入门到精通

一:什么是Mybatis 二:Mybatis就是简化jdbc代码的 三:Mybatis的操作步骤 1:在数据库中创建一个表,并添加数据 我们这里就省略了 2:Mybatis通过maven来导入坐标(jar包) 3&#xff1a…

Unity性能优化笔记

降低Draw Call 降低draw call(unity里叫batches)的方法有: 模型减少材质; 多模型共用材质; 烘焙灯光; 关闭阴影和雾; 遮挡剔除; 使用LOD; 模型减少材质 > 见…

BERT vs Rasa 如何选择 Hugging Face 与 Rasa 的区别 模型和智能体的区别

我在之前的一篇文章中提到我的短期目标的问题,即想通过Hugging Face的BERT或Rasa搭建一个简单的意图识别模型,针对发票业务场景来展示其效果 [如:开发票、查询发票]。 开篇,有必要记录几个英文缩写或术语 (如果喜欢&a…

Excel 重复项标记,删除重复项时出现未响应的情况

目录 一、重复值标记: 二、删除重复值: 三、未响应问题 一、重复值标记: 方法1:开始 》条件格式 》突出显示单元格规则 》重复值 》设置颜色 》确定 PS:样式可自定义(边框、字体、背景填充...&#xff0…

Python:操作 Excel 格式化

🔧Python 操作 Excel 格式化完整指南(openpyxl 与 xlsxwriter 双方案) 在数据处理和报表自动化中,Python 是一把利器,尤其是配合 Excel 文件的读写与格式化处理。本篇将详细介绍两大主流库: openpyxl:适合读取与修改现有 Excel 文件xlsxwriter:适合创建新文件并进行复…

雷卯针对易百纳 SS524多媒体处理演示评估板防雷防静电方案

一、 应用场景 1. 远程视频会议 2. 安防监控 3. 人/车检测 4. 人脸检测、比对 5. 屏幕拼接墙 二、 功能概述 1 四核 ARM Cortex-A7 1.2GHz 2 AI算力 1.0Tops 3 4K30fps 4*1080P30编解码 三、 扩展接口 l RAM:板载 2*DDR4,共 2GB; …

【BUG解决】关于BigDecimal与0的比较问题

这是一个很细小的知识点,但是很容易被忽略掉,导致系统问题,因此记录下来 问题背景 明明逻辑上看a和b都不为0才会调用除法,但是系统会报错:java.lang.ArithmeticException异常: if (!a.equals(BigDecimal…