是MySQL“;线程安全“;来自php脚本?

是MySQL“;线程安全“;来自php脚本?,php,mysql,thread-safety,Php,Mysql,Thread Safety,如果我有一个在MySQL连接上调用INSERT、UPDATE、DELETE等的php脚本,并且该脚本在不受控制的时间被POST操作调用,那么它是否总是“安全的”(即在请求期间不会导致损坏的表或冲突) 例如,如果在1秒时间内有500个请求 如果是这样,php/mysql是如何实现的 如果没有,需要做什么来保证“串行”访问或安全的同时访问 它是否总是“安全的”(即在请求期间不会导致损坏的表或冲突) 对 如果是这样,php/mysql是如何实现的 表/行锁。使用事务。。。请参见我认为您需要的术语是事务

如果我有一个在MySQL连接上调用INSERT、UPDATE、DELETE等的php脚本,并且该脚本在不受控制的时间被POST操作调用,那么它是否总是“安全的”(即在请求期间不会导致损坏的表或冲突)

例如,如果在1秒时间内有500个请求

如果是这样,php/mysql是如何实现的

如果没有,需要做什么来保证“串行”访问或安全的同时访问

它是否总是“安全的”(即在请求期间不会导致损坏的表或冲突)

如果是这样,php/mysql是如何实现的


表/行锁。

使用事务。。。请参见

我认为您需要的术语是事务和隔离级别。如果这些是根据您的要求设置的,您就不必担心碰撞。以下是有关的教程。

MySQL使用锁定(MyISAM的表级或InnoDB的行级),这不允许两个进程(对脚本的两次调用)修改同一行。因此表不会崩溃*,但MySQL可能无法在reasanoble时间内处理请求数量,请求将等待。您应该始终优化查询,使其尽可能快


*MyISAM可能会在插入/更新密集型应用程序上崩溃,但它具有自动恢复功能。但是请记住,在这种应用程序中,InnoDB的性能要高得多

通常数据库是可靠的,但有些重要操作必须完成或放弃。考虑一下银行账户上的现金存款

为了实现这一结果,您可能对使用事务感兴趣:

MySQL使用锁来表示和表示原子性。事务需要InnoDB或BDB。InnoDB支持完全支持

锁和事务的组合将解决您的并发问题

默认情况下,MySQL具有


一定要了解这些功能,看看它们是否符合要求。MyISAM使用表锁定,而InnoDB提供行级锁定,因此其中一个可以更好地满足您的需要。

BEGIN。。。工作。。。;承诺