update

MySQL事务的实现原理

[亡魂溺海] 提交于 2020-01-17 21:38:58
特点 原子性(Atomicity),一致性(Consistency),隔离型(Isolation)以及持久性(Durability) 一、事务的目的 1、可靠性和并发处理 可靠性:数据库要保证当insert或update操作时抛异常或者数据库crash的时候需要保障数据的操作前后的一致,想要做到这个,我需要知道我修改之前和修改之后的状态,所以就有了undo log和redo log。 并发处理:也就是说当多个并发请求过来,并且其中有一个请求是对数据修改操作的时候会有影响,为了避免读到脏数据,所以需要对事务之间的读写进行隔离,至于隔离到啥程度得看业务系统的场景了,实现这个就得用MySQL 的隔离级别。 二、实现事务功能的三个技术 1、日志文件(redo log 和 undo log) 2、锁技术 3、MVCC 1.1 redo log 与 undo log介绍 1.1.1redo log 什么是redo log ? redo log叫做重做日志,是用来实现事务的持久性。该日志文件由两部分组成:重做日志缓冲(redo log buffer)以及重做日志文件(redo log),前者是在内存中,后者在磁盘中。 当事务提交之后会把所有修改信息都会存到该日志中。假设有个表叫做tb1(id,username) 现在要插入数据(3,ceshi) start transaction; select

Django中的批量插入,修改

落花浮王杯 提交于 2020-01-17 19:09:24
性能问题 写代码最终要的两点是什么?我认为1是功能的实现问题。2是代码的运行速度问题也就是代码的优化问题。 一般来说普通的新增或修改使用Django提供的API最直接的create和update或者加上锁的select_for_update等 看一下对比代码如下: 单条插入 for i in range ( 1000 ) : Stduent . objects . create ( id = xxx , name = xxx ) 单条修改 for i in range ( 1000 ) : Stduent . objects . update ( name = xxx ) 这种代码功能是可以实现但是让人一看就感觉写代码的人像个XX,一点都不会想到代码的优化,看着还别扭。像这种一口气插入很多条的一般使用多条插入的方法。 多条插入 student_list = [ ] for i in range ( 1000 ) : student = Stduent ( id = xxx , name = xxx ) student_list . append ( student_list ) Stduent . objects . bulk_create ( student_list ) 多条修改 student_list = [ ] for i in range ( 1000 ) :

mybatis的select、insert、update、delete语句

不打扰是莪最后的温柔 提交于 2020-01-17 17:52:15
源地址: https://www.cnblogs.com/yufeng218/p/6622644.html 一、select <!-- 查询学生,根据id --> <select id="getStudent" parameterType="String" resultMap="studentResultMap"> SELECT ST.STUDENT_ID, ST.STUDENT_NAME, ST.STUDENT_SEX, ST.STUDENT_BIRTHDAY, ST.CLASS_ID FROM STUDENT_TBL ST WHERE ST.STUDENT_ID = #{studentID} </select> 这条语句就叫做‘getStudent,有一个String参数,并返回一个StudentEntity类型的对象。 注意参数的标识是:#{studentID}。 select 语句属性配置细节: 属性 描述 取值 默认 id 在这个模式下唯一的标识符,可被其它语句引用 parameterType 传给此语句的参数的完整类名或别名 resultType 语句返回值类型的整类名或别名。注意,如果是集合,那么这里填写的是集合的项的整类名或别名,而不是集合本身的类名。(resultType 与resultMap 不能并用) resultMap 引用的外部resultMap 名

Ble Mesh技术(九)之Friendship

落花浮王杯 提交于 2020-01-17 08:11:19
Friend直接流程建立都是通过上层传输曾的控制PDU进行交互。控制消息大部分都为不分段消息,所以这一章我们以下层传输层的为分段消息作为PDU格式的总体示意图。 1. Friendship相关Control PDU 1.1. Friend Poll 由LPN发起,请求Friend发送LPN睡眠期间为LPN存储的消息。 Opcode=0x01,对应的Parameters如下所示: Field Size(bits) Notes Padding 7 0b0000000,固定值 FSN 1 Friend Sequence Number TTL域设置为0。 消息使用 friendship security credentials加密。 1.2. Friend Update Friend通知LPN安全参数已经改变,或者当前消息队列为空。 Opcode=0x02,对应的Parameters如下所示: Field Size(octets) Notes Flags 1 第0个bit表示当前的Key Refresh阶段 第1个bit表示当前的IV Update状态 第2-7位RFU IV Index 4 Friend节点当前的IV Index MD 1 MD=0:表明Friend Queue为空 MD=1:表明Friend Queue非空 Field Notes Key Refresh Flag 0

pod install --verbose --no-repo-update :该命令只安装新添加的库,已更新的库忽略

 ̄綄美尐妖づ 提交于 2020-01-17 05:36:47
前言 为了避免修改第三方库之后,使用pod install的时候 更新了库,采用参数 --verbose --no-repo-update ,只安装新添加的库 code #!/bin/sh #该命令只安装新添加的库,已更新的库忽略 pod install -- verbose -- no - repo - update #该命令只更新指定的库,其它库忽略 #pod update 库名 --verbose --no-repo-update exit 0 % 来源: CSDN 作者: u011018979 链接: https://blog.csdn.net/u011018979/article/details/103830017

REST,以及RESTful的讲解

心已入冬 提交于 2020-01-16 20:05:49
1.传统下的API接口 http是目前在互联网上使用最多的协议,没有之一。   可是http的创始人一直都觉得,在过去10几年来,所有的人都在错误的使用Http.这句话怎么说呢?   如果说你要删除一个数据,以往的做法通常是 delete/{id}    如果你要更新一个数据,可能是Post数据放Body,然后方法是 update/{id}, 或者是artichle/{id}?method=update     这种做法让Roy Fielding很暴燥,他觉得这个世界不该这样的,所有的人都在误解而且在严重错误的误解Http的设计初衷,好比是发明了火药却只用它来做烟花爆竹。    那么正确的使用方式是什么呢?如果你要看Rest各种特性,你恐怕真的很难理解Rest,但是如果你看错误的使用http的人倒底儿了哪些错,什么是Rest就特别容易理解了。 来源: CSDN 作者: John0220 链接: https://blog.csdn.net/baobei0220/article/details/104006974

SpringBoot 数据篇之使用JDBC

萝らか妹 提交于 2020-01-16 16:01:30
目录 SpringBootTutorial :: Data :: Jdbc   简介   API   实战   引申和引用 SpringBootTutorial :: Data :: Jdbc 简介 API execute update query 实战 配置数据源 完整示例 引申和引用 简介 Spring Data 包含对 JDBC 的存储库支持,并将自动为 CrudRepository 上的方法生成 SQL。对于更高级的查询,提供了 @Query 注解。 当 classpath 上存在必要的依赖项时,Spring Boot 将自动配置 Spring Data 的 JDBC 存储库。它们可以通过 spring-boot-starter-data-jdbc 的单一依赖项添加到项目中。如有必要,可以通过将 @EnableJdbcRepositories 批注或 JdbcConfiguration 子类添加到应用程序来控制 Spring Data JDBC 的配置。 更多 Spring Data JDBC 细节,可以参考 Spring Data JDBC 官方文档 。 API spring-boot-starter-data-jdbc 引入了 spring-jdbc ,其 JDBC 特性就是基于 spring-jdbc 。 而 spring-jdbc 最核心的 API 无疑就是

MYSQL错误代码: 1093 You can't specify target table 'sc' for update in FROM clause

 ̄綄美尐妖づ 提交于 2020-01-16 08:37:07
MYSQL执行如下语句报错: UPDATE sc SET grade =grade*1.05 WHERE grade < (SELECT AVG(grade) AS avg_grade FROM sc) 报错信息如下:   错误代码: 1093   You can't specify target table 'sc' for update in FROM clause 意思是不能在同一语句中更新select出的同一张表元组的属性值 解决方法:将select出的结果通过中间表再select一遍即可。 UPDATE sc SET grade =grade*1.05 WHERE grade < (SELECT avg_grade FROM (SELECT AVG(grade) AS avg_grade FROM sc) AS temp) MYSQL手册sql-syntax.html里是这么写的: Incorrectly used table in subquery: Error 1093 (ER_UPDATE_TABLE_USED) SQLSTATE = HY000 Message = "You can't specify target table 'x' for update in FROM clause" This error occurs in cases such as the

mysql悲观锁总结和实践

血红的双手。 提交于 2020-01-16 01:31:48
转载于: https://www.iteye.com/blog/chenzhou123520-1860954 最近学习了一下数据库的悲观锁和乐观锁,根据自己的理解和网上参考资料总结如下: 悲观锁介绍(百科): 悲观锁,正如其名,它指的是对数据被外界(包括本系统当前的其他事务,以及来自外部系统的事务处理)修改持保守态度,因此,在整个数据处理过程中,将数据处于锁定状态。悲观锁的实现,往往依靠数据库提供的锁机制(也只有数据库层提供的锁机制才能真正保证数据访问的排他性,否则,即使在本系统中实现了加锁机制,也无法保证外部系统不会修改数据)。 使用场景举例:以MySQL InnoDB为例 商品goods表中有一个字段status,status为1代表商品未被下单,status为2代表商品已经被下单,那么我们对某个商品下单时必须确保该商品status为1。假设商品的id为1。 1. 如果不采用锁,那么操作方法如下 //1.查询出商品信息 select status from t_goods where id=1; //2.根据商品信息生成订单 insert into t_orders (id,goods_id) values (null,1); //3.修改商品status为2 update t_goods set status=2; 上面这种场景在高并发访问的情况下很可能会出现问题。

openSUSE 新的源(镜像)

情到浓时终转凉″ 提交于 2020-01-16 01:25:58
openSUSE 新的源(镜像) 2008年05月09日 12:20 来自http://www.linuxsir.org/bbs/showthread.php?p=1807601 YourFriend的帖子 Main Repository (OSS) zypper ar http://mirror.lupaworld.com/suse/10.3/repo/oss/ My_OSS_LUPA zypper ar http://ftp.jaist.ac.jp/pub/Linux/openSUSE/distribution/10.3/repo/oss/ My_OSS_Japan2 zypper ar http://ftp.kddilabs.jp/Linux/packages/opensuse/distribution/10.3/repo/oss/ My_OSS_Japan4 zypper ar http://ftp.riken.jp/Linux/opensuse/distribution/10.3/repo/oss/ My_OSS_Japan6 zypper ar http://ftp.kaist.ac.kr/pub/opensuse/distribution/10.3/repo/oss/ My_OSS_Korea2 zypper ar http://ftp.twaren.net