如果没有锁,mysql会出现什么情况呢?
线程A正在向一条记录中写入数据,假设这条记录共10个字段,当写到3个字段时,线程B要过来取出这条数据,会出现什么情况呢? 线程B读取的数据是前3个字段的新值 + 后7个字段的旧值,这肯定是不行的,用户读取的数据都乱套了,以新闻为例:标题读取的是新的,而内容读取的是旧的,不说别的,用户自己就得笑掉大牙
mysql中的事物就是用锁实现的,根据隔离级别不同决定了使用锁的“狠度”不同
备份时为什么加锁?
正在备份第10条记录,突然有线程过来修改了这条记录,极有可能造成备份的数据中,这条记录一部分是新值,一部分是旧值,原因同上
只是个人的理解,有不对的地方请指教
原文链接: http://bbs.51cto.com/thread-1470880-1.html
基本原理流程,3个线程以及之间的关联;
(1)、varchar与char的区别
(2)、varchar(50)中50的涵义
(3)、int(20)中20的涵义
(4)、mysql为什么这么设计
2>.InnoDB支持行级锁,而MyISAM支持表级锁
3>.InnoDB支持MVCC, 而MyISAM不支持
4>.InnoDB支持外键,而MyISAM不支持
5>.InnoDB不支持全文索引,而MyISAM支持。
(2)、innodb引擎的4大特性
插入缓冲(insert buffer),二次写(double write),自适应哈希索引(ahi),预读(read ahead)
(3)、2者selectcount(*)哪个更快,为什么 myisam更快,因为myisam内部维护了一个计数器,可以直接调取。
(1)、您是选择拆成子表,还是继续放一起;
(2)、写出您这样选择的理由。
开放性问题:据说是腾讯的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)