Mysql
Drogon Brother
这条路 我并不寂寞
展开
-
InnoDB的事务分析
InnoDB的事务分析mysql事务四个特性:ACIDAtomicity:事务最小工作单元,里面的操作要么全部成功,要么全部失败。Consistency:事务执行前后,数据完整性不会被破坏。Isolation:事务之间不会相互干扰。Durability:事务提交之后,对数据的修改是永久性的,即使系统故障也不会丢失数据。事务的原子性(Atomicity),一致性(Cons...原创 2019-08-08 14:21:55 · 140 阅读 · 0 评论 -
MySQL基础之多表之间的关系
2.6 多表之间的关系如上图所示,实际业务数据库中的表之间都是有关系的,我们接下来主要要学习的就是如何分析表关系及建立表关系。1)分类表create table category(cid varchar(32) primary key,cname varchar(100));2)商品表create table product(pid varchar(3...原创 2019-09-29 00:18:23 · 437 阅读 · 0 评论 -
MySQL基础之SQL解析顺序
2.5 SQL解析顺序接下来再走一步,让我们看看一条SQL语句的前世今生。首先看一下示例语句:SELECT DISTINCT< select_list >FROM< left_table > < join_type >JOIN < right_table > ON < join_condition >WHE...原创 2019-09-29 00:08:06 · 523 阅读 · 0 评论 -
MySQL基础之DML语句
2.4 DQL语句2.4.1 准备工作创建商品表:案例演示:#商品表CREATE TABLE product ( pid INT PRIMARY KEY AUTO_INCREMENT, # 自增加 AUTO_INCREMENT pname VARCHAR(20),#商品名称 price DOUBLE, #商品价格 ...原创 2019-09-28 23:43:01 · 339 阅读 · 0 评论 -
MySQL基础之DDL语句
2.2 DDL语句2.2.1 数据库操作:database2.2.1.1 创建数据库create database 数据库名;create database 数据库名 character set 字符集;2.2.1.2 查看数据库查看数据库服务器中的所有的数据库:show databases;查看某个数据库的定义的信息:show create databa...原创 2019-09-26 21:57:29 · 212 阅读 · 0 评论 -
MySQL基础之MySQL单机安装
2、MySQL基础2.1 MySQL单机安装操作系统:CentOS 7MySQL:5.62.1.1 MySQL卸载1)查看MySQL软件rpm -qa|grep mysqlyum repolist all | grep mysql2)卸载MySQLyum remove -y mysql mysql-libs mysql-common #卸载mysql...原创 2019-09-26 21:45:36 · 339 阅读 · 0 评论 -
什么SQL及SQL语言分类
1.3 SQL介绍1.3.1 什么是SQL【SQL是Structured Query Language的缩写】,它的前身是著名的关系数据库原型系统System R所采用的SEQUEL语言。作为一种访问【关系型数据库的标准语言】,SQL自问世以来得到了广泛的应用,不仅是著名的大型商用数据库产品Oracle、DB2、Sybase、SQL Server支持它,很多开源的数据库产品如Postgre...原创 2019-09-26 21:35:20 · 513 阅读 · 0 评论 -
MySQL是什么及发展历程
1.2 MySQL是什么及发展历程1.2.1 MySQL是什么 MySQL 是最流行的【关系型数据库管理系统】,在WEB应用方面 MySQL是最好的RDBMS应用软件之一。1.2.2 MySQL发展历程- MySQL的历史可以追溯到1979年,一个名为Monty Widenius的程序员在为TcX的小公司打工,并且用BASIC设计了一个报表工具,使其可以在4MH...原创 2019-09-26 21:30:20 · 1637 阅读 · 0 评论 -
MySQL介绍之数据库概述
1、MySQL介绍之数据库概述1.1 数据库概述1.1.1 什么是数据库 数据库就是[存储数据的仓库],其本质是一个[文件系统],数据按照特定的格式将数据存储起来,用户可以通过SQL对数据库中的数据进行增加,修改,删除及查询操作。1.1.2什么是关系型数据库 数据库中的[记录是有行有列的]就是关系型数据库,与之相反的就是NoSQL数据库了。...原创 2019-09-26 21:24:54 · 173 阅读 · 0 评论 -
Mysql隔离性之Read View
Mysql隔离性之Read View当前事务能读取到哪个历史版本?Read View是事务开启时,当前所有事务的一个集合,这个数据结构中存储了当前Read View中最大的ID及最小的ID。这就是当前活跃事务列表,如下所示:ct-trx --> trx11 --> trx9 --> trx6 --> trx5 --> trx3;ct-t...原创 2019-08-08 15:29:34 · 15989 阅读 · 2 评论 -
Mysql隔离性之事务链表
Mysql隔离性之事务链表Mysql中的事务在开始到提交过程中,都会被保存到一个叫trx_sys链表中,这是一个基本链表结构:ct-trxàtrx11àtrx9àtrx6àtrx5àtrx3事务链表中保存的都是还未提交的事务,事务一旦被提交,则会从事务链表中摘除。RR隔离级别下,在每个事务开始的时候,会将当前系统中所有活跃事务拷贝到一个列表中(read view)RC隔离级别下...原创 2019-08-08 15:25:56 · 527 阅读 · 0 评论 -
Mysql隔离性之Undo Log
Mysql隔离性之Undo LogInnoDB行记录有三个隐藏字段:分别对应的行的rowid、事务号db_trx_id和回滚指针db_roll_ptr,其中db_trx_id表示最近修改的事务的id,db_roll_ptr指向回滚段中的undo log。根据行为不同,可以分为两种:insert undo log 和 update undo loginsert undo log:...原创 2019-08-08 15:23:46 · 756 阅读 · 0 评论 -
Mysql隔离性之一致性非锁定读
Mysql隔离性之一致性非锁定读一致性非锁定读(consistent nonlocking read)是指InnoDB存储引擎通过多版本控制(MVCC)读取当前数据库中行数据的方式。如果读取的行是正在执行delete or update操作,这时读取操作不会因此去等待行上锁的释放。相反地,InnoDB会去读取行的一个快照版本。如上图所示:当会话B提交事务之后,会话A会再次运行SELEC...原创 2019-08-08 15:14:58 · 850 阅读 · 5 评论 -
Mysql隔离性之当前读和快照读
Mysql隔离性之当前读和快照读快照读:读取的是记录的可见版本(有可能是历史版本),不加锁。 场景:select当前读:读取的是记录的最新版本,并且当前读返回的记录会加锁,保证其他事务不会再并发修改这条记录。 场景:update、insert、delete欲知后事(Mysql隔离性之一致性非锁定读),请点击这里喔!...原创 2019-08-08 15:10:39 · 594 阅读 · 1 评论 -
Mysql隔离性之MVCC概念
Mysql隔离性之MVCC概念Wiki对MVCC定义中文版本: 多版本并发控制(MCC or MVCC),是一种并发控制方法,数据库管理系统常用来提供并发访问数据和编程语言用来实现事务内存。Wiki对MVCC定义英文版本: Multiversion concurrency control (MCC or MVCC), is a concurrency ...原创 2019-08-08 15:06:33 · 391 阅读 · 1 评论 -
Mysql隔离性之事务隔离级别
Mysql隔离性之事务隔离级别四种隔离级别(SQL 92标准): Mysql提供了四种隔离级别(低—>高):Read uncommitted(读未提交):最低级别,任何情况都不能满足; Read committed(RC:读已提交):可以避免脏读的发生; Repeatable read(RR:可重复读):可以避免脏读,不可重复读的发生; (注意事项:...原创 2019-08-08 14:53:13 · 481 阅读 · 0 评论 -
Mysql隔离性之并发问题
Mysql隔离性之并发问题在事务并发的操作中可能会出现一些问题: 丢失更新:两个事务针对同一数据都发生修改操作时,会存在丢失更新。 脏读:一个事务读取到另一个事务未提交的数据。 不可重复读:一个事务因读取到另一个事务已提交的update或者delete数据。导致对同一记录读取两次以上的结果不一致。 幻读:一个事务因读取到另一个事务...原创 2019-08-08 14:39:31 · 366 阅读 · 0 评论 -
Mysql Redo Log日志
Mysql Redo Log日志:数据日志与数据落盘机制Redo log写入磁盘时,必须进行一次操作系统fsync操作,防止redo log只是写入操作系统磁盘缓存中。参数innodb_flush_log_at_trx_commit可以控制redo log日志刷新到磁盘策略。Mysql UndoLog日志:数据日志与数据落盘机制数据库崩溃重启后,需要先从redo lo...原创 2019-08-08 14:33:31 · 2650 阅读 · 0 评论 -
MySQL基础之多表关联查询
2.7 多表关联查询我们已经学会了如何在一张表中读取数据,这是相对简单的,但是在真正的应用中经常需要从多个数据表中读取数据。本章节我们将向大家介绍如何使用 MySQL 的 JOIN 在两个或多个表中查询数据。你可以在 SELECT , UPDATE 和 DELETE 语句中使用 MySQL 的 JOIN 来联合多表查询。JOIN 按照功能大致分为如下三类:CROSS JOIN (交叉连...原创 2019-09-29 00:22:48 · 389 阅读 · 0 评论