如果没有锁,mysql会出现什么情况呢?
线程A正在向一条记录中写入数据,假设这条记录共10个字段,当写到3个字段时,线程B要过来取出这条数据,会出现什么情况呢? 线程B读取的数据是前3个字段的新值 + 后7个字段的旧值,这肯定是不行的,用户读取的数据都乱套了,以新闻为例:标题读取的是新的,而内容读取的是旧的,不说别的,用户自己就得笑掉大牙
mysql中的事物就是用锁实现的,根据隔离级别不同决定了使用锁的“狠度”不同
备份时为什么加锁?
正在备份第10条记录,突然有线程过来修改了这条记录,极有可能造成备份的数据中,这条记录一部分是新值,一部分是旧值,原因同上
只是个人的理解,有不对的地方请指教
create table program(sid int unsigned not null primary key auto_increment,
name char(20) not null,
age tinyint,
gender enum('M','F')
)engine=innodb default charset=utf8
--插入四行数据
insert into program(name,age,gender) values('zhangsan',20,'M'),
('lisi',30,'M'),('wangwu',23,'M'),('john',18,'F')
--删除zhangsan
delete from students where name='zhangsan'
--修改lisi
update students set age=25 where name='lisi'
--查询name,age age大于20
select name,age from students where age>20
mysql中有关数据库内容,描述正确的答案有以下4个:1、Schemata表提供了所有数据库的名称信息
2、Tables表提供了关于数据库中的表的信息
3、Columns表提供了每个表的列信息
4、在MySQL库中,有个user表,记录了所有数据库用户的账号和密码。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)