看完文档,我觉得是不是就是READ COMMITTED在SELECT FOR UPDATE和lock in share mode的时候会对所有情况进行索引的行锁定,而REPEATABLE READ只在查询条件中有索引的时候才进行索引行锁定(SELECT FOR UPDATE和lock in share mode)?还有,这个锁是什么时候加的啊?在事务中一运行update和select语句就加锁,一直加到事务提交?还是只在update的时候加,然后运行完这句就释放?还是全在commit的时候一块加啊?还有一个小问题,删除表的时候,所有在表上的触发器也会被删掉吧?
解决方案 »
- 【疑惑】mysql select like select equal 区别
- mysql创建全文索引后要用什么分词插件???
- show variables like 'key_buffer_size'中得到的值 的单位是什么?
- MySQL连接池设置过大出现的问题,怎么解决????
- mysql5 中一个数据表可以储存多少条数据量
- left join 联查两张表里有重名字段的问题
- 求一个24小时内点击最高的新闻的sql语句!
- hibernate 连接mysql问题!
- 上班一个月,领工资发现加了100,感觉不错
- 数据库里所以frm、ibd的表都打不开?
- 如何把一个php网站的Postgresql数据库向MySQL迁移?
- 载入数据问题
哦,是删掉的,只是mysqldump的文件里有trigger,恢复的时候把trigger给恢复了,我还以为没删掉呢……
READ COMMITTED 级别,在没有利用索引的情况下也会出现锁表.
REPEATABLE READ是在读事务提交前,别的事务可以更改数据,但不可以插入数据
2 一个事务一旦开始就加锁,提交后释放锁
在AUTO_COMMIT=ON的情况下,任何一条语句都默然是一个事务。
那AUTO_COMMIT=off的时候呢?这个锁是怎么加的?
SELECT 加的是共享锁,别的SESSION可以在上面再加排他锁。
你问的锁表的方式,这个论题范围太广泛了,涉及到很多的知识点。。