mysql事务

mysql常规操作

流过昼夜 提交于 2019-11-29 17:40:35
数据库操作 查看当前登陆用户: select user(); 登录数据库 mysql -u用户名 -p密码 -h 连接地址 修改当前用用户密码 set password = password('123456'); 库操作 创建库 相当于创建了一个文件夹 create database python; 查看库 show databases; 使用库 切换到对应的文件夹 use python 表操作 创建表 create table tablename(字段名 类型(长度),字段名 类型(长度) 约束...) # 例子 create table score(id int(8),name char(20),num int(4)); 修改表 查看表 show tables; 查看表结构 # 查看一些简单的信息,更直观 desc score; # 详细,可以查看到表名编码,存储引擎等.. show create table score; 删除表 drop table score; 查看数据库的字符集设置 show variables like '%character%'; 临时设置字符集(数据库重启既失效) 永久设置需要修改mysql配置文件 # 命令临时修改 set character_set_server='utf8'; 数据的增删改查 增 # 插入一条数据 insert into 表名

mysql锁

回眸只為那壹抹淺笑 提交于 2019-11-29 16:52:57
原文链接: http://blog.csdn.net/soonfly/article/details/70238902 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的 计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一 个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。本章我们着重讨论MySQL锁机制 的特点,常见的锁问题,以及解决MySQL锁问题的一些方法或建议。 Mysql用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。这些锁统称为悲观锁(Pessimistic Lock)。 MySQL锁概述 相对其他数据库而言,MySQL的锁机制比较简单,其最 显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(table-level locking);BDB存储引擎采用的是页面锁(page-level locking),但也支持表级锁;InnoDB存储引擎既支持行级锁(row-level locking),也支持表级锁,但默认情况下是采用行级锁。 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。

MySQL事务

試著忘記壹切 提交于 2019-11-29 16:01:23
事务(transaction) 一个完整的最小业务单元,用来处理较为复杂的数据(如,在图书管理系统中,你删除一本书,你即需要删除这本书的基本信息,也要删除和该书相关联的书的信息等等,这样,这些数据库操作语句就构成一个事务!) MySQL中 InnoDB引擎支持事务,Myisam不支持 事务的ACID 原子性 -- Atomicity 一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。 一致性 -- Consistency 在事务开始之前和事务结束以后,数据库的完整性没有被破坏。这表示写入的资料必须完全符合所有的预设规则,这包含资料的精确度、串联性以及后续数据库可以自发性地完成预定的工作。 隔离性 -- Isolation 数据库允许多个并发事务同时对其数据进行读写和修改的能力,隔离性可以防止多个事务并发执行时由于交叉执行而导致数据的不一致。 事务的隔离级别 分为不同级别,包括读未提交(Read uncommitted)、读提交(read committed)、可重复读(repeatable read)和串行化(Serializable)。 持久性 -- Durability 事务处理结束后,对数据的修改就是永久的,即便系统故障也不会丢失。

springMVC+MyBatis+Spring 整合(3)

China☆狼群 提交于 2019-11-29 15:55:47
spring mvc 与mybatis 的整合. 加入配置文件: spring-mybaits.xml <? xml version="1.0" encoding="UTF-8" ?> < beans xmlns ="http://www.springframework.org/schema/beans" xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx ="http://www.springframework.org/schema/tx" xmlns:aop ="http://www.springframework.org/schema/aop" xsi:schemaLocation =" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www

sqlAlchemy

孤者浪人 提交于 2019-11-29 15:21:41
首先说下,由于最新的 0.8 版还是开发版本,因此我使用的是 0.79 版,API 也许会有些不同。 因为我是搭配 MySQL InnoDB 使用,所以使用其他数据库的也不能完全照搬本文。 接着就从安装开始介绍吧,以 Debian/Ubuntu 为例(请确保有管理员权限): 1.MySQL 复制代码 代码如下: apt-get install mysql-server apt-get install mysql-client apt-get install libmysqlclient15-dev 2.python-mysqldb 复制代码 代码如下: apt-get install python-mysqldb 3.easy_install 复制代码 代码如下: wget http://peak.telecommunity.com/dist/ez_setup.py python ez_setup.py 4.MySQL-Python 复制代码 代码如下: easy_install MySQL-Python 5.SQLAlchemy 复制代码 代码如下: easy_install SQLAlchemy 如果是用其他操作系统,遇到问题就 Google 一下吧。我是在 Mac OS X 上开发的,途中也遇到些问题,不过当时没记下来…… 值得一提的是我用了 MySQL-Python 来连

Spring4-Spring中的事务管理&事务隔离级别

痞子三分冷 提交于 2019-11-29 14:51:03
Spring中的事务管理 Spring中的事务管理器 实验代码 MySQL中的表 book表 book_stock表 account表 两个接口 BookShopDao.java public interface BookShopDao { //根据书号获取书的单价 public int findBookPriceByIsbn(String isbn); //更新数的库存. 使书号对应的库存 - 1 public void updateBookStock(String isbn); //更新用户的账户余额: 使 username 的 balance - price public void updateUserAccount(String username, int price); } BookShopService.java public interface BookShopService { public void purchase(String username, String isbn); } 两个接口的实现类 BookShopDaoImpl.java import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository; @Repository(

Mysql中的事务

徘徊边缘 提交于 2019-11-29 14:02:11
事务简介 事务是逻辑上的一组操作,要么都执行,要么都不执行。 事物的四大特性(ACID) 原子性(Atomicity) : 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性(Consistency) : 执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的; 隔离性(Isolation) : 并发访问数据库时,一个用户的事务不被其他事务所干扰,各并发事务之间数据库是独立的; 持久性(Durability) : 一个事务被提交之后。它对数据库中数据的改变是持久的,即使数据库发生故障也不应该对其有任何影响。 并发事务带来的问题 脏读(Dirty read) : 当一个事务正在访问数据并且对数据进行了修改,而这种修改还没有提交到数据库中,这时另外一个事务也访问了这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是“脏数据”,依据“脏数据”所做的操作可能是不正确的。 丢失修改(Lost to modify) : 指在一个事务读取一个数据时,另外一个事务也访问了该数据,那么在第一个事务中修改了这个数据后,第二个事务也修改了这个数据。这样第一个事务内的修改结果就被丢失,因此称为丢失修改。 例如:事务1读取某表中的数据A=20,事务2也读取A=20,事务1修改A=A-1,事务2也修改A=A-1

大数据下高并发的处理详解

别等时光非礼了梦想. 提交于 2019-11-29 13:19:17
对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了。而并发问题是绝大部分的程序员头疼的问题,但话又说回来了,既然逃避不掉,那我们就要想想应对措施,今天我们就一起讨论一下常见的并发和同步吧。 首先为了更好的理解并发和同步,我们需要首先明白两个重要的概念: 同步和异步 同步和异步的区别和联系 所谓同步,就是一个线程执行一个方法或函数的时候,会阻塞其它线程,其他线程要等待它执行完毕才能继续执行。 异步,就是多个线程之间没有阻塞,多个线程同时执行。 通俗一点来说,同步就是一件事一件事的做,异步就是做一件事,不影响做其他事情。 例如:吃饭和说话,只能一件一件的来,因为只有一张嘴。 但是吃饭和听音乐是异步的,可以一起进行,因为听音乐并不影响我们吃饭。 对于Java程序员来说,Synchronized最为熟悉了,如果它作用于一个类的话,那么就是一个线程访问类的方法时,其他线程就会阻塞,相反,如果没有这个关键字来修饰的话,不同线程就可以在同一时间访问同一个方法,这就是异步。 脏读和不可重复读 脏读 脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这是,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读取的这个数据是脏数据(Dirty Data)

事务隔离级别新看法!

落爺英雄遲暮 提交于 2019-11-29 13:18:17
前言 我前段时间在写代码的时候,经常考虑并发问题,对事物的安全性、隔离级别需要更深的了解,所以翻看了网上绝大部分关于事务的文章。但是看了之后还是有些疑惑,例如事务的四种隔离级别,虽然有些文章举出了生动的例子,但并没有提到编程中的如何选择使用。 大部分介绍事务的文章,都是介绍什么事务隔离级别的、各种锁的概念,好像举得概念越多,就显示作者了知识更丰富一样,然而并没有实际编程的例子,就像英文教科书般将本该实际运用的东西变成一种学术,就算看懂讲是什么东西也没办法使用。这种 教科书式、百科式的文章害人不浅,因此我才写这篇文章。 事务隔离级别 事 务 简单来说就是要么一起过,要么全部取消,保证数据的完整性,在普通情况下,事 务 就是这么简单,提交回滚罢了。然而遇到并发问题,数据安全问题,这点了解是不够的。 事 务 有4种隔离级别,为什么是4种而没有5种、6种?可能是研究数据库的鼻祖们总结最后得出来的吧。那么下面我要先引用网上绝大部分关于这4种级别的介绍,以下为网上摘抄。 在介绍4种事 务 隔离级别前,需要三个概念: ‍ 1. 脏读: 一个事务读取到另一个事务尚未提交的数据。 ‍ 2. 不可重复读: 同一事务,两次读取同一数据,得到不同的结果。 ‍ 3. 幻读:同一事务,用相同的条件读 ‍ 取两次,得到的结果集数据条数不同(数据条数多了或者少了)。 然后为了解决这些个问题,数据库有了4种隔离级别

事务的四大特性和隔离级别

与世无争的帅哥 提交于 2019-11-29 13:18:05
一.什么是事务 事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。 二.事务的 四个特性( ACID ) 事务具有四个特性:原子性( Atomicity )、一致性( Consistency )、隔离性( Isolation )和持久性( Durability )。这四个特性简称为 ACID 特性。 1 、 事务的原子性 (Atomicity) 原子性要求事务所包含的全部操作是一个不可分割的整体,这些操作要么全部提交成功,要么只要其中一个操作失败,就全部不执行。 2 、事务的一致性 (Consistency) 一致性要求事务所包含的操作不能违反数据资源的一致性检查,数据资源在事务执行之前处于一个数据的一致性状态,那么,事务执行之后也需要依然保持数据间的一致性状态。 例如: 对于一个证券系统来说,如果顾客银行账户和证券账户资金总和为10 万的话 ( 银行账户初始 8 万,证券账户初始 2 万 ) ,从银行账户的 8 万转账 5 万到证券账户的事务操作结束之后,银行账户会剩余 3 万,证券账户为 7 万,两个账户的总和依然是 10 万,如果事务操作结束后,整个数据状态不是这个样子,那么就说系统处于不一致状态,而使用事务其中一个目的就是为了避免这种不一致性状态的产生。 3 、事务的隔离性 (Isolation)