数据库简介

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

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

关系型数据库的特点

二维表
典型产品 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. Spring Security OAuth 个性化token

    个性化Token 目的 默认通过调用 /oauth/token 返回的报文格式包含以下参数 { "access_token": "e6669cdf-b6cd-43fe-a ...

  2. 【转】关于在vim中的查找和替换

    1,查找 在normal模式下按下/即可进入查找模式,输入要查找的字符串并按下回车. Vim会跳转到第一个匹配.按下n查找下一个,按下N查找上一个. Vim查找支持正则表达式,例如/vim$匹配行尾的 ...

  3. 【BZOJ4004】【JLOI2015】装备购买

    Description 脸哥最近在玩一款神奇的游戏,这个游戏里有 n 件装备,每件装备有 m 个属性,用向量zi(aj ,.....,am) 表示 (1 <= i <= n; 1 < ...

  4. 单点登录(十六)-----遇到问题-----cas4.2.x登录成功后报错No principal was found---cas中文乱码问题完美解决

    情况 我们之前已经完成了cas4.2.x登录使用mongodb验证方式并且自定义了加密. 单点登录(十五)-----实战-----cas4.2.x登录mongodb验证方式实现自定义加密 但是悲剧的是 ...

  5. ---web模型 --mvc和模型--struts2 入门

    关于web模型: 早期的web 应用主要是静态页丽的浏览〈如新闻的制监),随着Internet的发展,web应用也变得越来越复杂,不仅要 和数据库进行交互 ,还要和用户进行交互,由此衍生了各种服务器端 ...

  6. LGP4588[JSOI2018]扫地机器人

    题解 需要先说明一点东西: 1 同一副对角线方向相同,共有$gcd(n,m)$条不同的副对角线,机器人的行为是一个$gcd(n,m)$的循环:: 如果左上方是$(1,1)$,容易看出所有的路径是从左或 ...

  7. CentOS-5的yum源无法使用问题

    CentOS-5的yum源无法使用问题 [root@37wan ~]# yum -y install gcc Loaded plugins: fastestmirror Determining fas ...

  8. Controller向View传值方式总结

    http://www.cnblogs.com/guohu/p/4377974.html 总结发现ASP.NET MVC中Controller向View传值的方式共有6种,分别是: ViewBag Vi ...

  9. Java基础-异常(Exception)处理

    Java基础-异常(Exception)处理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.异常的概述 什么是异常?Java代码在运行时期发生的问题就是异常.在Java中,把异 ...

  10. 服务器安全策略之《通过IP安全策略阻止某个IP访问的设置方法》

    现在我们在布署好了一个网站,发布到外网后就意味着将会接受来自四面八方的黑客攻击,这个情况很常见,我们的网站基本上每天都要接受成千上万次的攻击,有SQL注入的.有代码注入的.有CC攻击等等...而我作为 ...