1. 数据库基础

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.pswp.cn/bicheng/83618.shtml

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

相关文章

go语言学习 第5章:函数

第5章:函数 函数是编程中不可或缺的一部分,它封装了一段可重复使用的代码,用于执行特定的任务。在Go语言中,函数同样扮演着重要的角色。本章将详细介绍Go语言中函数的定义、调用、参数传递、返回值处理以及一些高级特性&#xff…

MapReduce 分布式计算模型

what:分解大数据集,并行处理,汇总结果(分解组合思想) 目的:SQL查询转换为MR,理解MR更好优化SQL 优点: 只需关注业务逻辑(自定义函数map,reduce&#xff09…

RDMA简介3之四种子协议对比

RDMA协议共有四种子协议,分别为InfiniBand、iWARP、RoCE v1和RoCE v2协议。这四种协议使用统一的RDMA API,但在具体的网络层级实现上有所不同,如图1所示,接下来将分别介绍这四种子协议。 图1 RDMA四种子协议网络层级关系图 Infin…

LabelImg: 开源图像标注工具指南

LabelImg: 开源图像标注工具指南 1. 简介 LabelImg 是一个图形化的图像标注工具,使用 Python 和 Qt 开发。它是目标检测任务中最常用的标注工具之一,支持 PASCAL VOC 和 YOLO 格式的标注输出。该工具开源、免费,并且跨平台支持 Windows、Lin…

系统架构设计论文

disstertation 软考高级-系统架构设计师-论文:论文范围(十大知识领域)、历年论题、预测论题及论述过程、论文要点、论文模板等。 —— 2025 年 4 月 4 日 甲辰年三月初七 清明 目录 disstertation1、论文范围(十大核心领域&#x…

数学复习笔记 26

5.25:这题还是有点难度的。主要是出现了新的知识点,我现在还没有那么熟悉这个新的知识点。这块就是,假设一个矩阵可以写成一个列向量乘以一个行向量的形式,这两个向量都是非零向量,那么这个矩阵的秩等于一。这个的原理…

[Java 基础]注释

注释在编程中扮演着非常重要的角色,它们是写给人类阅读的,而不是给计算机执行的。良好的注释可以极大地提高代码的可读性和可维护性。 为什么需要注释? 提高可读性: 注释可以解释代码的功能、实现思路、特殊处理等,帮…

TortoiseSVN账号切换

SVN登录配置及账号切换 本文主要为了解答svn客户端如何进行账号登录及切换不同权限账号的方式。 一、环境准备与客户端安装 安装TortoiseSVN客户端 ​​下载地址​​:TortoiseSVN官网 ​​安装步骤​​: 双击安装包,按向导完成安装后&#x…

5分钟了解JVM运行时数据区域

点击蓝字,关注我们 在 Java 程序运行期间,JVM 会划分出几块重要的内存区域,用来支撑类加载、方法调用、对象分配、线程执行等一切运行时行为。 这些区域构成了 JVM 的“运行时数据区”。 一、运行时数据区域概览图 二、Java 堆(H…

深入理解CSS浮动:从基础原理到实际应用

深入理解CSS浮动:从基础原理到实际应用 引言 在网页设计中,CSS浮动(float)是一个历史悠久却又至关重要的概念。虽然现代布局技术如Flexbox和Grid逐渐流行,但浮动仍然在许多场景中发挥着重要作用。本文将带你深入理解…

Spring Bean 为何“难产”?攻克构造器注入的依赖与歧义

本文已收录在Github,关注我,紧跟本系列专栏文章,咱们下篇再续! 🚀 魔都架构师 | 全网30W技术追随者🔧 大厂分布式系统/数据中台实战专家🏆 主导交易系统百万级流量调优 & 车联网平台架构&a…

华为云Flexus+DeepSeek征文|实战体验云服务器单机部署和CCE高可用的架构AI赋能

前引:“在数字化浪潮汹涌澎湃的今天,企业对云计算服务的需求已从基础架构支撑,逐步转向更深层次的AI赋能与业务创新驱动。面对复杂多变的市场环境,选择一个强大、可靠且具备前瞻性的云服务伙伴,无疑是企业实现高速增长…

雷卯针对易百纳G610Q-IPC-38E 模组防雷防静电方案

一、应用场景 1、智能监控 2、智能家居 3、工业自动化 4、机器人 5、智能交通 6、医疗影像 7、教育科研 二、 功能概述 1 HI3516CV610(ARM Cortex-A7 MP2) 2 AI算力 1Tops 3 模组集成 4M30FPS Sensor,支持最高 6M30fps 的 ISP 图像…

生成对抗网络(GAN)基础原理深度解析:从直观理解到形式化表达

摘要 本文详细解析 生成对抗网络(GAN) 的 核心原理,从通俗类比入手,结合印假钞与警察博弈的案例阐述生成器 与 判别器 的对抗机制;通过模型结构示意图,解析 噪声采样、样本生成 及判别流程;基于…

OptiStruct结构分析与工程应用:无限元法介绍

13.3 无限元方法 本节将详细阐述如何利用无限元方法求解外声场分析,具体包括无限元方法基本理论,无限单元介绍、无限元分析建模指南及检查,最后以一个实例讲解整个分析设置过程。 13.3.1 无限元分析基础理论 无限元求解外声场的基本原理如…

判断:有那种使用了局部变量的递归过程在转换成非递归过程时才必须使用栈

这道题的关键在于理解递归转非递归与 “是否用栈” 的本质逻辑,和 “局部变量” 无关,核心看递归的调用上下文是否需要保存。 一、递归的本质:依赖 “调用栈” 递归函数执行时,系统会用调用栈保存: 每层递归的参数、…

leetcode1443. 收集树上所有苹果的最少时间-medium

1 题目:收集树上所有苹果的最少时间 官方标定难度:中 给你一棵有 n 个节点的无向树,节点编号为 0 到 n-1 ,它们中有一些节点有苹果。通过树上的一条边,需要花费 1 秒钟。你从 节点 0 出发,请你返回最少需…

MySQL 索引底层原理剖析:B+ 树结构、索引创建维护与性能优化策略全解读

引言 在 MySQL 数据库的世界里,索引是提升查询性能的关键利器。然而,很多开发者虽然知道索引的重要性,但对于索引背后的底层原理却知之甚少。本文将深入 MySQL 索引的底层实现,剖析 B 树的结构特点,以及如何利用这些知…

【Delphi】实现在多显示器时指定程序运行在某个显示器上

在多显示器时代,经常会出现期望将程序运行在某个指定的显示器上,特别是在调试程序的时候,期望切换分辨率,单步调试时,此时容易导致互相卡住,非常不方便,但是通过指定程序运行在不同的显示器上就…

不动产登记区块链系统(Vue3 + Go + Gin + Hyperledger Fabric)

好久没有介绍过新项目的制作了,之前做的一直都是Fisco Bcos的项目,没有介绍过Hyperledger Fabric的项目,这次来给大家分享下。 系统概述 不动产登记与交易平台是一个基于Hyperledger Fabric的综合性管理系统,旨在实现不动产登记…