事务管理

mysql 复习

梦想的初衷 提交于 2019-12-04 23:27:04
SQL 什么是SQL? Structured Query Language :结构化查询语言 其实就是定义了操作所有关系型数据库的规则。每一种数据库操作的方式存在不一样的地方,称为“方言”。 SQL通用语法 SQL 语句可以单行或多行书写,以分号结尾。 可使用空格和缩进来增强语句的可读性。 MySQL 数据库的 SQL 语句不区分大小写,关键字建议使用大写。 3 种注释 单行注释: -- 注释内容 或 # 注释内容(mysql 特有) 多行注释: /* 注释 */ SQL分类 1) DDL(Data Definition Language) 数据定义语言 用来定义数据库对象:数据库,表,列等。关键字: create , drop , alter 等 2) DML(Data Manipulation Language) 数据操作语言 用来对数据库中表的数据进行增删改。关键字: insert , delete , update 等 3) DQL(Data Query Language) 数据查询语言 用来查询数据库中表的记录(数据)。关键字: select , where 等 4) DCL(Data Control Language) 数据控制语言(了解) 用来定义数据库的访问权限和安全级别,及创建用户。关键字: GRANT , REVOKE 等 DDL: 操作数据库、表 操作数据库

MySQL InnoDB 锁

ぃ、小莉子 提交于 2019-12-04 21:12:01
MySQL 原理篇 MySQL 索引机制 MySQL 体系结构及存储引擎 MySQL 语句执行过程详解 MySQL 执行计划详解 MySQL InnoDB 缓冲池 MySQL InnoDB 事务 MySQL InnoDB 锁 MySQL InnoDB MVCC MySQL InnoDB 实现高并发原理 MySQL InnoDB 快照读在RR和RC下有何差异 数据准备: /* SQLyog Ultimate v12.09 (64 bit) MySQL - 5.6.17 : Database - test ********************************************************************* */ /*!40101 SET NAMES utf8 */; /*!40101 SET SQL_MODE=''*/; /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE

oracle中的锁

你。 提交于 2019-12-04 20:37:12
orcle的锁机制是一种轻量级的锁定机制,不是通过构建锁列表来进行数据的锁定管理,而是直接将锁作为数据块的属性,存储在数据块首部。 在oracle数据库中,它并不是对某个表加上锁或者某几行加上锁,锁是以数据块的一个属性存在的。也就是说,每个数据块本身就存储着自己数据块中数据的信息,这个地方叫做ITL(INTERESTRED TRANASCTION LIST),凡是在这个数据块上有活动的事务,它的信息就会记录在这里面供后续的操作查询,保证事务的一致性。 在oracle数据库中,不存在真正意义上属于某个对象或数据的锁。oracle锁的信息是数据块的一个物理属性,而不是逻辑上属于某个表或者某个行。 ----------------------------------------------------------------------------------------------------------------------- 按照操作分为DML锁,DDL锁和system locks 首先需要知道的是: 在数据行上只有X锁(排他锁): 在 Oracle 数据库中,当一个事务首次发起一个 DML 语句时就获得一个 TX 锁,该锁保持到事务被提交或回滚。当两个或多个会话在表的同一条记录上执行 DML 语句时,第一个会话在该条记录上加锁,其他的会话处于等待状态。当第一个会话提交后, TX

【巨杉数据库SequoiaDB】SequoiaDB 巨杉数据库 v3.4 版本正式发布

旧巷老猫 提交于 2019-12-04 20:22:37
深秋时节,SequoiaDB 巨杉数据库在深秋给大家带来了“一把火”。 SequoiaDB v3.4 正式发布啦! 分布式交易场景性能大幅提升 SequoiaDB 巨杉数据库3.4版本正式发布,v3.4最重要的特性就是在分布式交易场景下的性能提升。 对比上一大版本,SequoiaDB v3.4 在分布式交易场景,读写性能提升达30%,更新性能提升1倍-1.5倍,查询性能较v3.2提升1.5倍以上。 新旧版本性能对比示意 针对分布式交易场景,3.4版本的技术提升主要有以下几个: Improved 2PC Algorithm 分布式事务智能仲裁算法。为分布式事务 2PC 提交增加智能仲裁算法,重点解决 2PC 算法中“In-doubt Transaction” 异常状态,实现数据库在极端场景下为多分区事务智能仲裁,确保分布式事务的强一致性。 Latch-less Memory Model 实现多层级内存池和无锁内存模型。数据库集群池化内存资源,内存池多级管理,会话访问实现 99.99% 内存访问命中率,实现高并发 OLTP 场景下内存的无锁访问,系统CPU的使用率提升 10%。SequoiaDB v3.4同时提供在线内存监控和离线内存分析能力,自动化生成内存分析报告。 Improved Raft Algorithm 突破Raft 算法极限,实现全并发同步。SequoiaDB v3

.NET Core前后端分离快速开发框架(Core.3.0+AntdVue)

喜欢而已 提交于 2019-12-04 19:49:11
.NET Core前后端分离快速开发框架(Core.3.0+AntdVue) 目录 引言 简介 环境搭建 开发环境要求 基础数据库构建 数据库设计规范 运行 使用教程 全局配置 快速开发 管理员登录 系统用户管理 系统角色管理 权限管理 接口秘钥管理 系统日志 单库事务 跨库事务 读写分离分库分表 常见疑问 如何进行联表查询 如何切换数据库类型 如何使用多个数据库 引言 时间真快,转眼今年又要过去了。回想今年,依次开源发布了 Colder.Fx.Net.AdminLTE(254Star) 、 Colder.Fx.Core.AdminLTE(335Star) 、 DotNettySocket(82Star) 、 IdHelper(47Star) ,这些框架及组件都是本着以实际出发,实事求是的态度,力求提高开发效率(我自己都是第一个使用者),目前来看反响不错。但是随着前端和后端技术的不断变革,尤其是前端,目前大环境已经是前后端完全分离为主的开发模式,在这样的大环境和必然趋势之下,传统的MVC就显得有些落伍了。在这样的背景下,一款前后端分离的.NET开发框架就显得尤为必要,由此便定了框架的升级目标: 前后端分离 。 首先后端技术的选择,从目前的数据来看,.NET Core的发展远远快于.NET Framework,最简单的分析就是Colder.Fx.Core

MySQL_基础知识

删除回忆录丶 提交于 2019-12-04 18:32:59
MySQL_基础知识 -----基础知识 1、什么是数据库? 数据库(Database)是按照数据结构来组织、存储和管理数据的仓库 2、什么是关系型数据库、主键,外键,索引分别是什么? 关系型数据库是由多张能互相联接的二维行列表格组成的数据库 主关键字(primary key)是表中的一个或多个字段,它的值用于唯一地标识表中的某一条记录 外键表示了两个关系之间的相关联系。以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的从表。外键又称作外关键字 在关系数据库中,索引是一种单独的、物理的对数据库表中一列或多列的值进行排序的一种存储结构,它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单 3、表的链接查询方式有那些,有什么区别? 交叉连接即笛卡儿乘积,是指两个关系中所有元组的任意组合 使用内连接时,如果两个表的相关字段满足连接条件,就从这两个表中提取数据并组合成新的记录 自连接是一种特殊的内连接,它是指相互连接的表在物理上为同一张表,但可以在逻辑上分为两张表 外连接是只限制一张表中的数据必须满足连接条件,而另一张表中的数据可以不满足连接条件的连接方式 4、SQL的select语句完成的执行顺序? 1、from 子句组装来自不同数据源的数据; 2、where 子句基于指定的条件对记录行进行筛选;   3、group by

[转帖]关于分布式

强颜欢笑 提交于 2019-12-04 16:25:12
https://www.cnblogs.com/wupeixuan/p/9302496.html 第一章主要讲的是分布式架构,主要包含以下内容: 集中式的特点 分布式的特点 分布式环境的各种问题 ACID 分布式事务 CAP和BASE理论 1 | 1 集中式与分布式的特点 集中式的特点:部署结构简单(因为基于底层性能卓越的大型主机,不需考虑对服务多个节点的部署,也就不用考虑多个节点之间分布式协调问题) 分布式的特点: 分布性 对等性 并发性 缺乏全局时钟 故障总是会发生 1 | 2 分布式环境的各种问题 分布式环境的各种问题: 通信异常:主要是因为网络本身的不可靠性 网络分区:当网络发生异常时,导致部分节点之间的网络延时不断增大,最终导致部分节点可以通信,而另一部分节点不能。 三态(成功、失败与超时) 节点故障:组成分布式系统的服务器节点出现宕机或“僵死”现象 1 | 3 ACID与分布式事务 事务是由一系列对系统中数据进行访问与更新的操作所组成的一个程序执行逻辑单元,狭义上的事务特指数据库事务。 事务有四个特性,分别是原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),简称为事务的ACID特性。 原子性(Atomicity):必须是一个原子的操作序列单元,只允许出现两种状态之一(全部成功执行,全部不执行)。

springboot中添加事务注解

有些话、适合烂在心里 提交于 2019-12-04 15:53:13
1.首先在service层中的方法前添加@Transactional @Service public class UserService { @Autowired private UserMapper userMapper; public List<User> queryAll(){ System.out.println("热部署"); return userMapper.findAll(); } @Transactional public void deleteById(Integer id) { userMapper.deleteById(id); // int c=10/0; } } 2.在springboot的启动中添加注解@EnableTransactionManagement @SpringBootApplication @EnableTransactionManagement //开启事务管理注解模式 最新的版本可以省略 @MapperScan("com.xz.springboot.mapper") //扫描该包下所有的接口并为该接口生成实现类 public class Springboot01Application { public static void main(String[] args) { SpringApplication.run

初识JDBC

余生长醉 提交于 2019-12-04 15:23:31
JDBC idea第一次使用过程中会出现使用时区错误,设置时区后解决问题 概念:JAVA DataBase Connectivity -java 数据库连接,java语言操作数据库 JDBC本质:sun公司定义的一套JAVA连接各种关系型数据库的规则(接口),并没有进行实现,而是由每个数据库厂商实现了这个接口,并且提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行代码的是驱动jar包中的实现类。 JDBC 快速入门 package cn.learn.jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; public class JdbcDemo01 { public static void main(String[] args) { //1.导入厂商jar包,复制包到新建文件夹lib,再add as Library /* mysql厂商的jar包在5版本后里的META-INF中已经注册驱动,可 以不写 Class.forName("com.mysql.jdbc.Driver"); */ Statement statement = null; Connection conn =

相关错题

醉酒当歌 提交于 2019-12-04 13:45:25
使用SqlSessionTemplate映射接口实现数据库操作,下列说法正确的是()   A.使用SqlSessionTemplate的selectOne()方法获取映射器实例;   B.使用SqlSessionTemplate的getInstance()方法获取映射器实例;   C.使用SqlSessionTemplate的getMapper方法获取映射器实例;   D.必须提供实现DAO接口的实现类; 正确答案 :C   试题解析: 使用SqlSessionTemplate的getMapper方法可以完成映射接口的实现,可以没有DAO实现的类,这种方式不容易产生错误,并且在编译期就能识别错误。而且命名空间发生变化,也不会导致很多地方需要修改,易于维护。故选c 关于Spring的声明式事务管理,下面说法正确的是()   A.声明式事务是侵入式的,需要修改程序代码;   B.使用声明式事务时,我们主要关注“在哪儿”和“采取什么样的事务策略”;   C.配置声明式事务需要tx和aop两个命名空间的支持;   D.事务管理器的实现由负责数据库操作的Hibernate框架提供; 正确答案: BC 试题解析:    声明式事务:在Spring配置文件中对事务进行配置,无须在程序中写代码;(建议使用)         我对”声明式“的理解是这样的:Spring配置文件中定义好了这样一个规则,