在MySql表中同时插入/更新?

在MySql表中同时插入/更新?,mysql,database,Mysql,Database,我有一个MySql数据库,托管在一个Web服务器上,它有一组包含数据的表。我正在分发使用HTML5/Javascript/CS3构建的前端应用程序 现在,当多个用户同时尝试对其中一个表进行插入/更新时,是会产生冲突,还是会自动为我处理表的锁定?例如,当一个用户正在使用,它将为他锁定表,然后让其他人跟随队列,一旦用户完成,它将释放锁,然后将其交给队列中的下一个?这会发生吗?还是我需要在mysql数据库中处理这个问题 例如: 当用户希望向数据库中插入数据时,他会调用位于Web服务器上的php文件,该

我有一个MySql数据库,托管在一个Web服务器上,它有一组包含数据的表。我正在分发使用HTML5/Javascript/CS3构建的前端应用程序

现在,当多个用户同时尝试对其中一个表进行插入/更新时,是会产生冲突,还是会自动为我处理表的锁定?例如,当一个用户正在使用,它将为他锁定表,然后让其他人跟随队列,一旦用户完成,它将释放锁,然后将其交给队列中的下一个?这会发生吗?还是我需要在mysql数据库中处理这个问题

例如:

当用户希望向数据库中插入数据时,他会调用位于Web服务器上的php文件,该文件具有insert命令,可将数据发布到数据库中。我担心如果两个或两个以上的人在同一时间进行插入,它是否会进行更新

mysqli_query($con,"INSERT INTO cfv_postbusupdate (BusNumber, Direction, StopNames, Status, comments, username, dayofweek, time) VALUES (".trim($busnum).", '".trim($direction3)."', '".trim($stopname3)."', '".$status."', '".$comments."', '".$username."', '".trim($dayofweek3)."', '".trim($btime3)."' )");

MySQL自动处理表锁定

请注意,使用MyISAM引擎,整个表都会被锁定,语句将阻塞(“排队”),等待释放锁

InnoDB引擎提供了更多的并发性,可以执行行级锁定,而不是锁定整个表

例如,在某些情况下,如果希望保持引用完整性,并且希望在会话执行其工作时禁止其他会话对任何表进行更改,则可能需要对多个MyISAM表进行锁定。但是,这确实扼杀了并发性;这应该更多地是一个“管理”类型的函数,而不是并发应用程序应该做的事情


如果您正在使用事务(InnoDB),那么应用程序需要处理的问题是锁定表的行的顺序;当MySQL检测到有两个(或更多)事务无法继续,因为每个事务都需要获得另一个事务持有的锁时,应用程序可能会遇到“死锁”异常。MySQL唯一能做的就是检测,MySQL唯一能做的恢复就是选择一个事务作为牺牲品,这就是将获得“死锁”异常的事务,因为MySQL杀死了它,以允许至少一个事务继续进行。

您能详细说明“插入/更新”是什么意思吗?能否提供一个简化的
INSERT
语句作为示例?你担心什么样的冲突?你能举例说明这种冲突吗?