Coin163

MySQL基本概述 mysql 管理工具 mysql官网 mysql下载64位

2016-07-27by admin, 次阅读

本篇文章主要介绍了"MySQL基本概述",主要涉及到Mysql方面的内容,对于MySql感兴趣的同学可以参考一下: MySQL是非常灵活的一款数据库,虽然它不是绝对完美,但它的灵活足够适应很多高要求的环境。为了发挥MySQL的性能并很好的使用它,我们就得先了解其设计。MySQ...

MySQL是非常灵活的一款数据库,虽然它不是绝对完美,但它的灵活足够适应很多高要求的环境。为了发挥MySQL的性能并很好的使用它,我们就得先了解其设计。MySQL的灵活主要体现在我们可以通过不同的配置使他在不同的硬件上都能运行的很好。但是MySQL最重要,与种不同的特性是它的存储引擎架构,这种架构将查询处理及其他系统任务和数据的存储/提取相分离。

1.MySQL的逻辑架构

mysql下载,mysql教程,mysql 客户端,mysql安装图解,mysql 命令,mysql 管理工具,mysql官网,mysql下载64位
如上图,我们可以简单的将其逻辑架构分为3层

(1)网络接口层:主要负责接受连接,并读写连接对应的内容,这点和我们平时所写的网络服务器的I/O接口层基本相似
(2)请求处理层:如上图所示,该层主要是对请求SQL语句进行解析,解析之后或是进一步对请求的SQL语句进行优化,或是直接在缓存中找到请求的内容
(3)存储引擎层:该层主要负责数据的提取和存储

(1)连接管理

MySQL的每个客户端连接都会在服务器拥有一个线程,该线程的查询只会在这个单独的线程中去执行。服务器会负责缓存该线程,因此不需要为每个新连接创建或销毁线程(线程池)

(2)优化与执行

MySQL会解析查询,并创建内部数据结构(解析树),然后对其进行各种优化,包括重写查询,决定表的读写顺序,以及选择合适的索引等。用户可以通过explain来查看查询优化过程,从而可知服务器是如何进行查询优化决策的。需要注意的是优化器并不需要知道存储引擎是什么,但不同的存储引擎对优化是有影响的

2.并发控制

(1)读写锁

当我们的多个用户同时对数据库中的一张表进行读操作,这并不会产生什么问题。但是如果此时有一个进程在修改表中的某条数据,这就会产生不可预料的事情了。为了防止类似的事情发生,MySQL采用了俩中锁:共享锁和排他锁。这俩中锁从概念上就很好理解,共享意思持有这些锁的线程互相不阻塞,对应此处就是一张表几个线程可以同时读。排他则意味着只要有一个线程获得该锁,则其他的所有线程无论读写都会被阻塞

(2)锁粒度

能够提高并发性的一种方式就是让锁的对象更具有选择性。尽量只锁定真正需要修改的数据,而不是有关的无关的都锁。锁定的资源(临界区)越少,则并发度也就越高,只要相互之间不发生竞争即可。刚才的说法其实只是一种理想,真实环境下,我们创建锁,加锁,解锁,销毁锁也都会也一定的代价,那么你把锁的对象缩小,对应的锁粒度就会增加,锁粒度一旦增加,那么大量的加锁,解锁操作是不是会降低性能。所以我们是不是因该根据实际的应运场景来在这俩者中寻找出最适合该场景的一个平衡点?

MySQL的各种引擎支持如下俩种锁策略

表锁:表锁是MySQL中最基本的策略,并且是开销最小的策略。表锁会锁定整张表,一个用户对表进行写操作(插入,删除,跟新)前,需先获得写锁,这样就会阻塞其他用户对表进行的所有操作。只有没有写锁时,其他用户才能获得该表的读锁,读锁之间是不阻塞的上文有提到的
行锁:行锁可以最大程度的支持并发处理(也同时带来了最大的锁开销)InnoDB支持的就是行锁,这里所说的锁都是只在存储引擎中的实现,服务器是完全不了解存储引擎的锁实现的

3.事务

对数据库而言事务就是一组原子的SQL查询(注意这里所所的查询可不单指select哦),或者说是一个独立的单元。如果数据库引擎能够成功的对数据库进行该组内的全部查询语句,那么就执行该组查询。如果有一条不能执行(例如程序崩溃导致),那么所有的语句都不会执行

事物具有ACID特性,分别如下

原子性:一个事务必须被视为一个不可分割的最小单位,整个事务的操作要么全部提交成功,要么失败回滚
一致性:数据库总是从一个一致性的状态转换到另一个一致性的状态
隔离性:通常来说在一个事务所做的修改在最终提交之前,对其他事务是不可见的
持久性:一旦事务提交,则其所做的修改就会永久保存


MySQL基础 DML cmd找回mysql密码 cmd怎么连接mysql cmd怎么打开mysq

MySQL基础 DML",主要涉及到Mysql,dml方面的内容,对于MySql感兴趣的同学可以参考一下: DML语句 DML操作是指对数据库中表记录的操作,主要包括表记录的插入(insert)、更新...

阿里巴巴开源项目:分布式数据库同步系统otter解决中美异地机房

阿里巴巴开源项目:分布式数据库同步系统otter解决中美异地机房",主要涉及到方面的内容,对于MySql感兴趣的同学可以参考一下: 项目背景 阿里巴巴B2B公司,因为业务...

mysql 基于 master-master 的双机热备配置 mysql master host mysql stop master mysql master h

mysql 基于 master-master 的双机热备配置",主要涉及到master,Mysql方面的内容,对于MySql感兴趣的同学可以参考一下: master-master 就是两台服务器互为主从: master1-slave(master2)...

------分隔线----------------------------