广告
返回顶部
首页 > 资讯 > 数据库 >新手入门Mysql--概念
  • 572
分享到

新手入门Mysql--概念

2024-04-02 19:04:59 572人浏览 泡泡鱼
摘要

1. 是什么? Mysql 是最流行的关系型数据库管理系统,在 WEB 应用方面 mysql 是最好的 RDBMS(Relational Database Management S

1. 是什么?

Mysql 是最流行的关系型数据库管理系统,在 WEB 应用方面 mysql 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。

1.1 RDBMS

RDBMS 即关系数据库管理系统(Relational Database Management System)的特点:

1.数据以表格的形式出现

2.每行为各种记录名称

3.每列为记录名称所对应的数据域

4.许多的行和列组成一张表单

5.若干的表单组成database

1.2 Mysql数据库

MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 oracle 公司。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

  • MySQL 是开源的,目前隶属于 Oracle 旗下产品。
  • MySQL 支持大型的数据库。可以处理拥有上千万条记录的大型数据库。
  • MySQL 使用标准的 SQL 数据语言形式。
  • MySQL 可以运行于多个系统上,并且支持多种语言。这些编程语言包括 C、c++python、Java、 Perl、PHP、Eiffel、Ruby 和 Tcl 等。
  • MySQL 对php有很好的支持,PHP 是目前最流行的 Web 开发语言。
  • MySQL 支持大型数据库,支持 5000 万条记录的数据仓库,32 位系统表文件最大可支持 4GB,64 位系统支持最大的表文件为8TB。
  • MySQL 是可以定制的,采用了 GPL 协议,你可以修改源码来开发自己的 MySQL 系统。

2. 工作机制

2.1 整体架构图(C/S架构)

  • Client :

提供连接MySQL服务器功能的常用工具

  • Server :

MySQL实例,真正提供数据存储和数据处理功能的MySQL服务器进程

  • mysqld:

MySQL服务器守护程序,在后台运行。它管理着客户端请求。mysqld是一个多线程的进程,允许多个会话连接,端口监听连接,管理MySQL实例

  • MySQL memory allocation:

MySQL的要求的内存空间是动态的,比如 innodb_buffer_pool_size (from 5.7.5), key_buffer_size。每个会话都有独一无二的执行计划,我们只能共享同一会话域内的数据集。

  • SESSION

为每个客户端连接分配一个会话,动态分配和回收。用于查询处理,每个会话同时具备一个缓冲区。每个会话是作为一个线程执行的

  • Parser

检测SQL语句语法,为每条SQL语句生成SQL_ID,用户认证也发生在这个阶段

  • Optimizer

创造一个有效率的执行计划(根据具体的存储引擎)。它将会重写查询语句。比如:InnoDB有共享缓冲区,所以,优化器会首先从预先缓存的数据中提取。使用 table statistics optimizer将会为SQL查询生成一个执行计划。用户权限检查也发生在这个阶段。

  • Metadata cache

缓存对象元信息和统计信息

  • Query cache

共享在内存中的完全一样的查询语句。如果完全相同的查询在缓存命中,MySQL服务器会直接从缓存中去检索结果。缓存是会话间共享的,所以为一个客户生成的结果集也能为另一个客户所用。查询缓存基于SQL_ID。将SELECT语句写入视图就是查询缓存最好的例子。

  • key cache

缓存表索引。MySQL keys是索引。如果索引数据量小,它将缓存索引结构和叶子节点(存储索引数据)。如果索引很大,它只会缓存索引结构,通常供MyISAM存储引擎使用

2.2 网络协议

2.2.1 通信协议

到MySQL5.7为止,总共有五种,分别是tcp/IP,TLS/SSL,Unix Sockets,Shared Memory,Named pipes,下面我们就来看看这五种的区别:

方式 默认开启 支持系统 只支持本机 如何开启 参数配置
TCP/IP 所有系统 –skip-networking=yes/no –port–bind-address
TLS/SSL 所有系统(基于TCP/IP)之上 –ssl=yes/no –ssl-* options
Unix Sockets 类Unix系统 –socket= 来关闭 –socket=socket path
Shared Memory windows系统 –shared-memory=on/off. –shared-memory-base-name=
Named pipes Windows系统 –enable-named-pipe=on/off –socket=

2.2.2 报文格式

协议头:

每个协议头共4个字节

- 包数据长度:

前三个字节表示数据部分的长度(不包括协议头),三字节能表示的最大长度是16M-1(2^24 - 1),如果要发送的数据部分大于这个长度,要进行拆包,每16M-1个长度为一包。接收端在接受数据的时候,如果检测到包的长度是16M-1,说明后续还有数据部分,直到接收到<16M-1长度的数据包结束。这意味着最后一包的数据长度可能为0.

序号:

1个字节,从0开始递增。当发送一个新的sql、数据库重连,该值清0(函数sql/Net_serv.cc : net_clear).

数据类型:

除了固定长度的整型或者字符串之外,还有其他几种类型的数据。(固定长度字段数据的存取:include/Mybyte_order.h : 存值 intstore 取值:intkorr 多字节的处理按照小端优先的方式)


     1. 可变长度的整数   
        对该类数据的存取在函数:sql-common/Pack.c: 存整数: net_store_length     读整数:net_field_length
        如果数值<251,直接用一个字节存储这个值。
       如果251<=数值<2^16, 采用3个字节存储,第一个字节是252, 另外2个字节存储整数内容
       如果2^16<=数值<2^24,采用4字节存储,第一个字节是252,另外3个字节存储整数内容
       如果2^24<=数值<2^64,采用9字节存储,第一个字节255,另外8字节存储整数内容
       如果第一个字节为251,表示该整数字段为null
       如果第一个字节为255,表示该字节是ERR包的第一个字节
   2. 可编码长度的字符串
           字符串的长度采用可变长度的整数进行编码。

2.3 SQL语法

可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL)。 SQL (结构化查询语言)是用于执行查询的语法。但是 SQL 语言也包含用于更新、插入和删除记录的语法。

查询和更新指令构成了 SQL 的 DML 部分:

SELECT - 从数据库表中获取数据UPDATE - 更新数据库表中的数据DELETE - 从数据库表中删除数据INSERT INTO - 向数据库表中插入数据SQL 的数据定义语言 (DDL) 部分使我们有能力创建或删除表格。我们也可以定义索引(键),规定表之间的链接,以及施加表间的约束。

SQL 中最重要的 DDL 语句:

CREATE DATABASE - 创建新数据库ALTER DATABASE - 修改数据库CREATE TABLE - 创建新表ALTER TABLE - 变更(改变)数据库表DROP TABLE - 删除表CREATE INDEX - 创建索引(搜索键)DROP INDEX - 删除索引

3. 小结

这篇文章从宏观和使用角度去了解Mysql是什么,后续深入。也请大家多多关注编程网的更多内容

您可能感兴趣的文档:

--结束END--

本文标题: 新手入门Mysql--概念

本文链接: https://www.lsjlt.com/news/128539.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 新手入门Mysql--概念
    1. 是什么? MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management S...
    99+
    2022-11-12
  • 新手入门Jvm--jvm概览
    目录1. 什么是Jvm2. Jvm组成2.1 Jdk体系结构2.2 Jvm体系结构3. 类加载机制3.1 流程3.2 类加载器和双亲委派机制3.3 类加载器初始化过程3.4 双亲委派...
    99+
    2022-11-12
  • 【MySQL新手入门系列一】:手把手教你入门MySQL
    如果您是一位刚刚开始学习MySQL的新手,本文将为您提供一些实用的入门知识和技巧,帮助您快速上手。 本篇文章将以windows为例,介绍MySQL的基础知识,以及如何安装、卸载、配置和使用它。 ...
    99+
    2023-09-03
    mysql 数据库 java
  • elk入门概念详解
    开始第一步我们现在开始进行一个简单教程,它涵盖了一些基本的概念介绍,比如索引(indexing)、搜索(search)以及聚合(aggregations)。通过这个教程,我们可以让你对Elasticsear...
    99+
    2022-10-18
  • ReactiveProgramming入门概念详解
    目录正文Reactive ProgrammingReactive StreamsSpring ReactorReactive Streams、Reactor和WebFlux 区别?正...
    99+
    2022-11-13
  • H5混合开发手机WebApp入门:概念篇
    如果你开始学习手机 App 开发,就一定会听到 H5 这个词。它是目前的主流开发技术之一,容易上手,开发周期短、成本低、兼容传统 Web 开发。但是,很少有文章详细介绍,H5 到底是...
    99+
    2022-12-03
    H5开发app Web App
  • 新入门node.js必须要知道的概念(必看篇)
    一、对于一个刚入门node.js的朋友来说,一定要了解一些基础概念: 今年我正式进入社会后,发现自己所知道的IT方面的知识,真的只是牛毛,原来人外有人,山外有山,还需要继续努力。下面是一些我的自学习心得,发...
    99+
    2022-06-04
    要知道 必看 入门
  • 新手入门Mysql--sql执行过程
    目录1. 流程2. 核心架构 2.1 Server 层基本组件介绍3. 语句分析3.1 查询语句3.2 更新语句4. 总结1. 流程 2. 核心架构 简单来说 MySQ...
    99+
    2022-11-12
  • 【MySQL新手入门系列四】:手把手教你MySQL数据查询由入门到学徒
    SQL语言是与数据库交互的机制,是关系型数据库的标准语言。SQL语言可以用于创建、修改和查询关系数据库。SQL的SELECT语句是最重要的命令之一,用于从指定表中查询数据。在此博客中,我们将进一步了解SELECT语句以及WHER&#...
    99+
    2023-08-17
    mysql 数据库 sql
  • 快速入门系列TSQL基础概念
    T-SQL(Transact-SQL)是一种用于管理和操作关系型数据库的编程语言,在Microsoft SQL Server数据库中...
    99+
    2023-09-28
    TSQL
  • MySQL新手入门进阶语句汇总
    目录引言一、常用查询1.1、order by按关键字排序升序排序 降序排序结合where进行条件过滤在排序多字段排序1.2、and/or判断and/or使用1.3、distinct查询不重复记录1.4...
    99+
    2022-09-22
  • 数据库入门必知的基本概念
    数据库的基本概念: 动态网站开发离不开数据存储,数据存储离不开数据库,数据库技术是计算机技术中的重要部分,在软件开发等领域起着至关重要的作用。所谓数据库,可以理解为用来存储信息的仓库。而信息就是要存储下来的...
    99+
    2022-10-18
  • MySql新手入门的基本操作汇总
    库操作 查询 1.SHOW DATABASE; ----查询所有数据库 2.SHOW CREATE DATABASE 数据库名称; ----查询某个数据库的创建模式 3.SHOW ...
    99+
    2022-11-12
  • Android 新手入门体验
    @drawable/icon@:代表R.javadrawable:内部类drawableicon:id为icon的对象R.java文件中的drawable内部类中的id为ico...
    99+
    2022-06-06
    新手入门 Android
  • uniapp基础(新手入门)
    前言: 这篇文章主要写的是uniapp的基础知识,可以让大家快速上手uniapp,同时避掉一些可能踩到的坑。 目录 一. 什么是uniapp二. uniapp应用1.准备工具2. 创建我...
    99+
    2023-08-31
    uni-app 微信小程序 小程序
  • 【网络】计算机网络基础概念入门
    🍁 博主 "开着拖拉机回家"带您 Go to New World.✨🍁 🦄 个人主页——🎐个人主页 🎐✨🍁 🪁...
    99+
    2023-10-19
    计算机网络 OSI网络模型 TCP/IP模型 MAC帧地址 套接字 虚拟网络互联 网络分类
  • nodejs入门教程一:概念与用法简介
    本文实例讲述了nodejs概念与用法。分享给大家供大家参考,具体如下: 一. nodejs 的特点 1.nodejs 是一个javaScript 的运行平台,采用了Google Chrome浏览器的V8引擎...
    99+
    2022-06-04
    入门教程 概念 简介
  • ZooKeeper入门教程一简介与核心概念
    目录1、ZooKeeper介绍与核心概念1.1 简介1.2分布式系统面临的问题1、通过网络进行信息共享2、通过共享存储1.3 ZooKeeper如何解决分布式系统面临的问题1.4 z...
    99+
    2022-11-13
  • 一篇文章带你入门Java基本概念
    目录Java基本概念一、JRE(Java运行时环境)二、JDK(Java开发工具)三、Java源代码文件(.class)四、Java字节码文件(.java)五、Java虚拟机(JVM...
    99+
    2022-11-12
  • MySQL初级入门篇之视图的相关概念及应用实例
    目录1.浅谈数据库对象2.什么是视图?3.视图操作相关SQL4.视图实操SQL5.视图的优缺点总结1.浅谈数据库对象 2.什么是视图? 视图一方面可以帮我们使用表的一部分而不是所...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作