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

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 存储引擎对比(拓展)

相关文章:

  • C++修炼:C++11(一)
  • 新品发布 | 同星新一代TC1055 Pro开启车载网络测试新时代
  • zabbix 6 监控 docker 容器
  • 营养配餐实训室产教融合新标杆
  • 重装系统+驱动+磁盘分区
  • unix/linux,sudo,其基本属性、语法、操作、api
  • 数据结构(8)树-二叉树
  • android与Qt类比
  • 【c++】STL-string容器的使用
  • 驱动:字符设备驱动注册、读写实操
  • [Harmony]颜色初始化
  • [Harmony]网络状态监听
  • 5.29-6.4解决问题归纳
  • ‘pnpm‘ 不是内部或外部命令,也不是可运行的程序
  • Linux系统iptables防火墙实验拓补
  • 亚马逊站内信规则2025年重大更新:避坑指南与合规策略
  • 制造业数智化:R²AIN SUITE 如何打通提效闭环
  • 使用 useSearchParams 的一个没有触发控制台报错的错误用法
  • 某校体育场馆结构自动化监测
  • LeetCode 2297. 跳跃游戏 VIII(中等)
  • 网站没有在工信部备案/seo网站建站
  • 黄村网站建设一条龙/小网站搜什么关键词
  • 企业手机网站建设价位/百度关键词优化大师
  • 网页设计师考证试题/谷歌seo怎么优化
  • 英铭广州网站建设/代理广告投放平台
  • 韩国做美食网站有哪些/网站外链平台