首页 > 数据库 >(一)MySQL概述

(一)MySQL概述

时间:2022-08-24 17:12:45浏览次数:60  
标签:存储 缓存 数据库 MySQL 查询 概述 SQL

一、概述

SQL有两个重要的标准,分别是SQL92和SQL99,它们分别代表了92年和99年颁布的SQL标准。

E-R(实体-关系)图

它是我们用来描述现实世界的概念模型,在这个模型中有3个要素:实体、属性、关系。

实体就是我们要管理的对象,属性是标识每个实体的属性,关系则是对象之间的关系。

SQL的4个部分:

  1. DDL,英文叫做Data Definition Language,也就是数据定义语言,它用来定义我们的数据库对象,包括数据库、数据表和列。通过使用DDL,我们可以创建,删除和修改数据库和表结构。
  2. DML,英文叫做Data Manipulation Language,数据操作语言,我们用它操作和数据库相关的记录,比如增加、删除、修改数据表中的记录。
  3. DQL,英文叫做Data Query Language,数据查询语言,我们用它查询想要的记录,它是SQL语言的重中之重。在实际的业务中,我们绝大多数情况下都是在和查询打交道,因此学会编写正确且高效的查询语句,是学习的重点。
  4. DCL,英文叫做Data Control Language,数据控制语言,我们用它来定义访问权限和安全级别。

DB、DBS和DBMS

DBMS的英文全称是DataBase Management System,数据库管理系统,实际上它可以对多个数据库进行管理

DB的英文是DataBase,也就是数据库。

DBS的英文是DataBase System,数据库系统。它是更大的概念,包括了数据库、数据库管理系统以及数据库管理人员DBA。

DBA是数据库管理人员

SQL和NoSQL的区别

  • SQL就是关系型数据库的查询语言

  • NoSQL泛指非关系型数据库

    • 键值型数据库。通过Key-Value键值的方式来存储数据,其中Key和Value可以是简单的对象,也可以是复杂的对象。

      Key作为唯一的标识符,优点是查找速度快,在这方面明显优于关系型数据库,同时缺点也很明显,它无法像关系型数据库一样自由使用条件过滤(比如WHERE),如果你不知道去哪里找数据,就要遍历所有的键,这就会消耗大量的计算。键值型数据库典型的使用场景是作为内容缓存。Redis是最流行的键值型数据库。

    • 文档型数据库。用来管理文档,在数据库中文档作为处理信息的基本单位,一个文档就相当于一条记录,MongoDB是最流行的文档型数据库。

    • 搜索引擎。虽然关系型数据库采用了索引提升检索效率,但是针对全文索引效率却较低。搜索引擎的优势在于采用了全文搜索的技术,核心原理是“倒排索引”。常见的全文搜索引擎有Elasticsearch、Splunk和Solr。

    • 列式数据库。Oracle、MySQL、SQL Server等数据库都是采用的行式存储(Row-based),而列式数据库是将数据按照列存储到数据库中,这样做的好处是可以大量降低系统的I/O,适合于分布式文件系统,不足在于功能相对有限。

    • 图形数据库,利用了图这种数据结构存储了实体(对象)之间的关系。最典型的例子就是社交网络中人与人的关系,数据模型主要是以节点和边(关系)来实现,特点在于能高效地解决复杂的关系问题

SQL如何执行?

首先MySQL是典型的C/S架构,即Client/Server架构,服务器端程序使用的mysqld。

MySQL由三层组成:

  1. 连接层:客户端和服务器端建立连接,客户端发送SQL至服务器端;
  2. SQL层:对SQL语句进行查询处理;
  3. 存储引擎层:与数据库文件打交道,负责数据的存储和读取。

其中,SQL层负责SQL的执行。SQL语句在MySQL中的流程是:SQL语句→缓存查询→解析器→优化器→执行器。

  1. 查询缓存:Server如果在查询缓存中发现了这条SQL语句,就会直接将结果返回给客户端;如果没有,就进入到解析器阶段。因为查询缓存往往效率不高(一旦数据表有更新,缓存都将清空,因此只有数据表是静态的时候,或者数据表很少发生变化时,使用缓存查询才有价值,否则如果数据表经常更新,反而增加了SQL的查询时间),所以在MySQL8.0之后就抛弃了这个功能。
  2. 解析器:在解析器中对SQL语句进行语法分析、语义分析
  3. 优化器:在优化器中会确定SQL语句的执行路径,比如是根据全表检索,还是根据索引来检索等。
  4. 执行器:在执行之前需要判断该用户是否具备权限,如果具备权限就执行SQL查询并返回结果。在MySQL8.0以下的版本,如果设置了查询缓存,这时会将查询结果进行缓存。

开启在SQL执行时所使用的时间情况

select @@profiling;
set profiling=1;

SQL语句
show profile;

MySQL的存储引擎

  1. InnoDB存储引擎:它是MySQL 5.5版本之后默认的存储引擎,最大的特点是支持事务行级锁定外键约束等。
  2. MyISAM存储引擎:在MySQL 5.5版本之前是默认的存储引擎,不支持事务也不支持外键,最大的特点是速度快,占用资源少
  3. Memory存储引擎:使用系统内存作为存储介质,以便得到更快的响应速度。不过如果mysqld进程崩溃,则会导致所有的数据丢失,因此我们只有当数据是临时的情况下才使用Memory存储引擎。
  4. NDB存储引擎:也叫做NDB Cluster存储引擎,主要用于MySQL Cluster分布式集群环境,类似于Oracle的RAC集群。
  5. Archive存储引擎:它有很好的压缩机制,用于文件归档,在请求写入时会进行压缩,所以也经常用来做仓库。

标签:存储,缓存,数据库,MySQL,查询,概述,SQL
From: https://www.cnblogs.com/greengages/p/16620820.html

相关文章

  • MySQL的指令Ⅱ
    进入mysql的指令mysql-hlocalhost-uroot-pmysql-h101.43.158.84-uroot-p insert是插入数据,如果存在重复数据数据,insert就无法插入,而replace解决重复性数据......
  • mysql php js 经纬度 转换 查询
    坐标系介绍地球坐标(WGS84)WGS-84:是国际标准,GPS坐标(GoogleEarth使用、或者GPS模块)国际标准,从专业GPS设备中取出的数据的坐标系国际地图提供商使用的坐标系火星坐......
  • 案例分析&环境搭建、maven概述
    案例分析&环境搭建案例需求:1,提供index.html页面,页面中有一个省份下拉列表2.当页面加载完成后发送ajax请求,加载所有省份   maven概述maven是什么项目管理工具M......
  • DSA概述
    DSA:DataStructure+Algorithm课程清华大学邓俊辉数据结构与算法https://dsa.cs.tsinghua.edu.cn/~deng/ds/dsacpp/概论什么是计算评判DSA优劣的参照(直尺)度量DS......
  • mysql增删改查json中的某个字段
    创建表1CREATETABLEt_json(idINTPRIMARYKEY,NAMEVARCHAR(20),infoJSON);插入记录1INSERTINTOt_json(id,sname,info)VALUES(1,'test','{"time":"20......
  • QT 连接 MySQL 版本问题
    问题现象SSLconnectionerror:unknownerrornumberQMYSQL:Unabletoconnect问题原因出现这样的现象是因为我QT使用的是5.7的驱动,而我连接的数据库是8.0.30版本的,......
  • mysql 复制一个库
    首先创建一个库 new_db然后使用mysqldump工具把老的库数据复制到新库打开黑框mysqldumpold_db-uroot-p'12345'--add-drop-table|mysqlnew_db-uroot-p'123......
  • Linux mysql数据库自动备份脚本策略
    1.创建保存备份文件的文件夹mkdir/data/mysqlbak 2.编写脚本cd/data/mysqlbakvisqlAutoBak.sh SH脚本内容:DB_USER="root"DB_PASS="root"#你的数据库密码D......
  • mysql中if
    在mysql中,if()函数用于判断条件,在条件为true时返回一个值,在条件为false则返回另一个值,语法为“IF(条件,条件为真时的返回值,条件为假时的返回值)”。mysql中if的用法是......
  • mysql更改执行计划_数据量增加导致MySQL执行计划改变
    收到运维同学电话,MySQL服务器连接数满了,登录服务器查看,确实满了,好吧,首先增加连接数到2500,暂时提供对外服务。连接继续升高,又快达到2500。发现有大量的查询时间将近到了1200......