不在任何事务中的数据操作,遇到同步问题时会出现什么情况?
假设不声明任何事务,如果一个简单的insert语句往某表中插入一条数据耗时1秒,那么在这一秒钟内,如果有另一个进程的sql语句试图删除这条数据,会发生什么情况?
该delete操作会被阻塞,直到插入完成以后再执行?
如果同时又有许多select语句和update语句,他们都将被阻塞?会不会造成报错的情况?
[解决办法]
insert、update、delete操作会加排它锁,当你执行insert操作时,其他操作会等待该进程结束。
select操作会加共享锁,你可以对同一数据进行多个select,查询结束后,共享锁会被释放。
当select进程未结束,insert、update、delete会等待该进程结束。