这个问题通常在laravel中表现为类似下边的异常:

 转自: http://www.maomao365.com/?p=6738 
摘要:

1. innodb在不同隔离级别下的一致性读及锁的差异
  不同的隔离级别下,innodb处理sql
时采用的一致性读策略和需要的锁是不同的,同时,数据恢复和复制机制的特点,也对一些sql的一致性读策略和锁策略有很大影响。对于许多sql,
隔离级别越高,innodb给记录集的锁就越严格(龙其是使用范围条件的时候),产生的锁冲突的可能性也就越高,对并发性事务处理性能的影响也就越大。因此,在应用中,应该尽量使用较低的隔离级别,减少锁争用。通常使用Read
Commited隔离级别就足够了,
对于一些确实需要更高隔离级别的事务,可能在程序中执行 SET SESSION
TRANSACTION ISOLATION LEVEL REPEATABLE READ 或SET SESSION TRANSACTION
ISOLATION LEVEL SERIALIZABLE 动态来改变隔离级别。 

 

下文将从数据库的数据类型着手,剖析在sqlserver数据库中可以存储二进制数据的数据类型,如下所示:
 

  下面重点看下REPEATABLE READ与Read commited
锁申请的不同区别,在增删改查上申请的锁都是一致的,但在事务中锁释放的时间是不一样的这点需要注意。

local.ERROR: SQLSTATE[HY000] [2006] MySQL server has gone away
{“exception”:”[object] (PDOException(code: 2006): SQLSTATE[HY000]
[2006] MySQL server has gone away at…


SQL

 

mssql sqlserver常见数据类型如下:
</span>
bit:整型,数据范围[0,1,null],用于存取布尔值
tinyint:整型,数据范围[0~256)
smallint:整型,数据范围[-215~215)
int:整型,数据范围[-231~231)

条件

找到你的my.cnf,在[mysqld]下增加一行

decimal:精确数值型 ,例:decimal(10,2); //共10位,小数点右2位

Read uncommited

 1 default-authentication-plugin=mysql_native_password 

numeric:与decimal类似

Read commited

smallmoney:货币型

Repeatable read

money:货币型

serializable

float:浮点型,近似数值型

Select

real:近似数值型

 

Smalldatetime:日期时间型,表示从1900年1月1日到2079年6月6日间的日期和时间,精确到分钟

=

datetime:日期时间型,从1753年1月1日到9999年12月31日间所有的日期和时间数据,
精确到三百分之一秒或3.33毫秒

None locks

cursor:特殊数据型,包含一个对游标的引用。用在存储过程中,创建表时不能用

Consisten read/

timestamp:特殊数据型,系统自动的数据类型,不可以操作,当行记录被操作时,此值都会发生变化,每个数据表只允许一个此列存在

None locks

Uniqueidentifier:特殊数据型,全局唯一标识符,GUID

Consisten read/

char:字符型,存储指定长度的定长非统一编码型的数据,必须指定列宽,列宽最大为8000
个字符

None locks

varchar:字符型,存储非统一编码型字符数据,数据类型为变长,要指定该列的最大长度,存储的长度不是列长,而是数据的长度

Share locks

text:字符型,存储大量的非统一编码型字符数据

范围

nchar:统一编码字符型,存储定长统一编码字符型数据,能存储4000种字符,统一编码用双字节结构来存储每个字符

None locks

nvarchar:统一编码字符型,用作变长的统一编码字符型数据

Consisten read/

ntext:统一编码字符型,用来存储大量的统一编码字符型数据

None locks

binary:二进制数据类型,存储可达8000 字节长的定长的二进制数据

Consisten read/

varbinary:二进制数据类型,用来存储可达8000 字节长的变长的二进制数据

None locks

image:二进制数据类型,用来存储变长的二进制数据

Share next-key

 

Update


=

从上面的数据类型,我们可以分析出
mssql
sqlserver可存储二进制数据的数据类型为:

binary varcbinary image
 

X(排它锁)

X

X

X

范围

X next-key

X next-key

X next-key

X next-key

Insert

 

X

X

X

发表评论

电子邮件地址不会被公开。 必填项已用*标注