数据库简介

  数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。

  所谓“数据库”系以一定方式储存在一起、能予多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。

关系型数据库的特点

二维表
典型产品 Oracle传统企业,MySQL是互联网企业
数据存取是通过SQL(结构化查询语句)
最大特点,数据安全性方面强(ACID)

数据库使用排名

数据来源: https://db-engines.com/en/ranking


MySQL数据库版本介绍

    5.0--5.1--5.5--5.6--5.7--8.0

MySQL的市场应用

    a)  中、大型互联网公司

    b)  市场空间:互联网领域第一

    c)  趋势明显

    d)  同源产品:MariaDB、perconaDB

mysql发展史  

1979年,报表工具Unireg出现。
1985 年,以瑞典David Axmark 为首,成立了一家公司(AB前身),IASM引擎出现。
1990年,提供SQL支持。
1999-2000年,MySQL AB公司成立,并公布源码,开源化。
2000年4月BDB引擎出现,支持事务。
2008年1月16日,Sun(太阳微系统)正式收购MySQL。
2009年4月20日,甲骨文公司宣布以每股9.50美元,74亿美元的总额收购Sun电脑公司,MySQL 转入Oracle 门下。
2013年6月18日,甲骨文公司修改MySQL授权协议,移除了GPL。但随后有消息称这是一个bug。

MySQL的特点简介

开源、社区版免费、简单,使用方便,可靠、稳定、安全、社区活跃

  

Mysql体系结构

  mysql是一个典型的c/s模式,服务端与客户端两部分组成

服务端程序 mysqld
客户端程序 mysql自带客户端(mysql、mysqladmin、mysqldump等)
第三方客户端 API接口(php-mysql)

MySQL在启动过程

  1、启动后台守护进程,并生成工作线程

     2、预分配内存结构供MySQL处理数据使用

  # 实例就是MySQL的后台进程+线程+预分配的内存结构  --> 完整的数据库管理系统

  # 多实例==完整的数据库管理系统*n

mysql连接方式

TCP/IP 连接   网络连接串(通过用户名 密码 IP 端口进行连接)

mysql -uroot -p123 -h 127.0.0.1 -P 3306

socket 连接   网络套接字(用户名 密码  socket文件)

mysql -uroot -p123 -S /application/mysql/tmp/mysql.sock

在linux中使用mysql命令不加其他的参数连接方式即

mysql -uroot -p123     //使用的是套接字文件方式登录的

  

Mysqld服务的构成

1、连接层

(1)提供连接协议(TCPIP,socket)
(2)用户与密码的验证模块
(3)针对每个连接提供一个连接线程(接收用户命令,返回结果给用户)

2、SQL层

sql即结构化的查询语句(数据库内部逻辑语言)sql92 sql99

      DDL 数据库定义语言

      DCL 数据库控制语言

      DML 数据库操作语言

      DQL 数据查询语言

sql层处理流程  

select * from wordpress.user;

、语法检查模块
、对象权限及存在性检查模块
、语义检查模块(看看SQL是什么类型的DDL?DCL? DML? DQL?),交给对应类型的解析器继续处理
、解析器模块处理对应语句,解析成执行计划。
、优化器(.7优化可以选择性使用他提供的多种代价模型),选择《他觉得》代价最小的执行计划,交由下一个模块继续处理
、执行器:按照优化器选择,执行语句,得到结果(目标数据行在哪个文件上(t1.ibd)。的哪个位置(1000页))。
将执行结果,交给下一层继续处理
、提供查询缓存 query_cache(需要手工开启才能使用)
()每次运行一条语句的时候,首先做个hash运算,得出一串值(SQL ID),拿着SQL_ID缓存中找,如果匹配上,直接返回结果
()生成缓存时,拿着SQL_ID+结果存到缓存中
、查询日志记录(binlog)
我们还可以使用 Redis替代query_cache .

3、存储引擎层

负责和底层磁盘打交道,根据上层提供的获取数据的方法,得到数据(16进制)后,再转给上层,结构化成表模式
查看数据库当前运行的进程

存储引擎层功能:

    存数据、取数据

    数据的不同存储方式

不同的管理方式:

        事务(增、删、改)

        备份恢复       

        高级功能(高可用的架构、读写分离架构)

mysql的逻辑结构

  逻辑构成是为了用户能够读懂数据出现的,让你更好的理解数据。

  管理数据的一种方式。

库(database)----> 目录
表(table) ----> 目录下的文件
表的内容 ----> 文件的内容
表的属性(元数据) ----> 文件的Inode
//切换库
mysql> use mysql;
//查看表
mysql> show tables;
//查看列的信息(记录)
mysql> desc user;

mysql物理结构

对于Linux操作系统来讲,他的物理层是“柱面”
对于MySQL来讲,他是Linux系统之上的应用软件,他的物理层就是文件系统上的特定格式的文件
什么的格式是由MySQL<存储引擎>决定的
" tim [(none)]>show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| InnoDB | DEFAULT | Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| CSV | YES | CSV storage engine | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
9 rows in set (0.00 sec)

存储引擎简介

InnoDB: 支持事务处理,支持外键,支持崩溃修复能力和并发控制。如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。
MyISAM: 插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比 较低,也可以使用。
MEMORY: 所有的数据都在内存中,数据的处理速度快,但是安全性不高。如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表。
  注意:同一个数据库也可以使用多种存储引擎的表。如果一个表要求比较高的事务处理,可以选择InnoDB。这个数据库中可以将查询要求比较高的表选择MyISAM存储。如果该数据库需要一个用于查询的临时表,可以选择MEMORY存储引擎。

MySQL体系结构小结

sql 优化相关的理念

解析器 : 执行计划  数据库执行sql的一种方式

优化器 : 知道基本规则,直接影响将来选择哪个执行计划

查询缓存 : 生产环境中,一般会用redis memcached 来代替

逻辑结构

 库    就是一个目录,为了存放多张表

 表    在相应的库中,用多个文件来表示

                    myisam表 3个文件:(.myd数据文件  .myi索引文件 frm表 结构定义文件)

innodb:  2个或者一个,共享表空间(ibdata1 基表 元数据)、独立表空间(5.6以后默认的表存储方式)

mysql -> 简介&体系结构_01的更多相关文章

  1. 数据库介绍(MySQL安装 体系结构、基本管理)

    第1章 数据库介绍及mysql安装 1.1 数据库简介 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增.截取.更新.删除等操作. 所谓“数据库”系以一定方式 ...

  2. 【转】数据库介绍(MySQL安装 体系结构、基本管理)

    [转]数据库介绍(MySQL安装 体系结构.基本管理) 第1章 数据库介绍及mysql安装 1.1 数据库简介 数据库,简而言之可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新 ...

  3. 第一章 Mysql 简介及安装和配置

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

  4. mysql基础篇-----mysql简介

    2017-04-19 一.mysql简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 ...

  5. MySQL(一)之MySQL简介与安装

    大家可能都在用MySQL,其实我也是在用MySQL的,但是你知道吗?大部分人都是在windows中使用,这里将介绍一下在windows中的安装分为安装包安装与MSI包安装,以及在linux中的在线安装 ...

  6. PHP MySQL 简介

    PHP MySQL 简介 通过 PHP,您可以连接和操作数据库. MySQL 是跟 PHP 配套使用的最流行的开源数据库系统. 如果想学习更多 MySQL 知识可以查看本站MySQL 教程. MySQ ...

  7. MySQL简介及安装

    一.DBA工作内容及课程体系 二.MySQL课程体系介绍 三.DBA的职业素养 四.MySQL简介及安装 01 什么是数据? 02 什么是数据库管理系统 03 数据库管理系统种类 04 MySQL发展 ...

  8. 6.MySQL简介

    MySQL简介 ·点击查看MySQL官方网站 ·MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,后来被Sun公司收购,Sun公司后来又被Oracle公司收购,目前属于facle旗下 ...

  9. (一) Mysql 简介及安装和配置

    第一节:Mysql 简介 百度百科 第二节:Mysql 安装及配置 1,Mysql5.1 下载及安装 2,Mysql 数据库编码配置 utf-8 3,Mysql 图形界面 Sqlyog 下载及安装

随机推荐

  1. 【转】rt-thread的位图调度算法分析

    序言 期待读者 本文期待读者有C语言编程基础,后文中要分析代码,对其中的一些C语言中的简单语句不会介绍,但是并不要求读者有过多的C基础,比如指针和链表等不会要求太多,后面在分析代码时,会附带地介绍相关 ...

  2. 使用wmic.exe绕过应用程序白名单(多种方法)

      一.Wmic.exe wmic实用程序是一款Microsoft工具,它提供一个wmi命令行界面,用于本地和远程计算机的各种管理功能,以及wmic查询,例如系统设置.停止进程和本地或远程运行脚本.因 ...

  3. 如何修改Windows程序的权限?

    修改程序的权限需要用到3个函数: 1. 获取进程的令牌句柄: OpenProcessToken 2. 查找特权类型的ID: LookupPrivilegeValue 3. 修改进程的特权:Adjust ...

  4. activiti教程之示例项目activiti-explorer运行_百度经验

    https://jingyan.baidu.com/article/4e5b3e19107ad091901e249e.html

  5. PDF文档小技巧整理一览

    1.福昕阅读器文档背景修改为保护眼睛的颜色? 1)文件 -> 偏好设置 -> 访问 -> 勾选 "改变文档颜色" 2)选择 '自定义颜色'->'页面背景颜色 ...

  6. 公钥与私钥对HTTPS的理解(数字证书的需要)

    本文转自某大牛链接 文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用.接着对数字证书做一个详细的解释,并讨论一下window ...

  7. AES-NI指令集

    对于intel的AES-NI新指令集,需要i5处理器及以上的相关硬件支持.在编译时,可能会出现 /usr/lib/gcc/x86_64-linux-gnu/4.8/include/wmmintrin. ...

  8. Java入门:Java下载与安装方法

    本文适合刚入门的Java编程的初学者阅读. JDK有两种下载方法,一个是官网下载,另一个是第三方网站下载.官网速度也许有点慢,慢的话可以考虑去第三方网站下载. 一.官网下载 1. 访问地址:http: ...

  9. linux命令总结之lsof命令

    简介 lsof(list open files)是一个列出当前系统打开文件的工具.在linux环境下,任何事物都以文件的形式存在,通过文件不仅仅可以访问常规数据,还可以访问网络连接和硬件.所以如传输控 ...

  10. Windows Server2008 R2中的角色

    AD Certificate Services 官方说明: Active Directory 证书服务 (AD CS) 提供可自定义的服务,用于颁发和管理使用公钥技术的软件安全系统中的证书.可以使用 ...