当前位置: 首页 > 面试题库 >

MySQL过程线程安全吗?

诸龙野
2023-03-14
问题内容

我正在开发一些需要与数据库交互的网站。我不会在这里举一个复杂的例子。我的问题实际上归结为:MySQL过程线程安全吗?如果我站点上的一个客户端触发了一个过程,我可以认为它是原子的,还是会干扰其他用户的另一个请求?


问题答案:

取决于您是否正在使用SQL事务。在没有适当使用事务和实际序列化级别的情况下,过程可能会在写调用中公开某些数据,例如,在完整过程完成之前,其他查询/过程可以看到这些数据。

简而言之:只有在使用适当的事务级别时,给定的过程才是原子的



 类似资料:
  • 问题内容: 标准的MySQL JDBC驱动程序是线程安全的吗?具体来说,我想在所有线程中使用单个连接,但是每个语句将仅在单个线程中使用。是否存在某些安全场景,而有些则不安全?您在这里有什么经验? 问题答案: 每个连接开始/提交事务。除非您正在做一些非常具体的事情(我真的想不出一个可以说实话的例子),否则最好使用连接池和每个线程的连接。

  • 问题内容: 我试图使一些MSSQL代码也可以在MYSQL上运行,而我只是碰到了这个地雷。谷歌表示,通常的方法是简单地进行插入,然后选择last_insert_ID()来查找所写的内容。 但是,这在多用户环境中并不令我感到安全。那里有一个狭窄的窗口,另一个用户可以在其中插入一些东西并导致错误的返回值。如何 安全 插入并获取插入记录的密钥? 问题答案: https://dev.mysql.com/do

  • 我正在尝试制作一些SQL 不过,我觉得这在多用户环境中并不安全。那里有一个狭窄的窗口,另一个用户可以在那里插入一些东西,并导致一个错误的返回值。如何安全地插入并获取插入记录的密钥?

  • 问题内容: HttpUrlConnection线程安全吗?即,如果我有一个连接到服务器的HttpConnection实例,并且该实例被不同的线程使用(例如,尝试同时发送POST),HttpUrlConnection将如何处理这种情况?a)他们将串行发送POST,还是b)第一个线程发送POST,获取响应,然后第二个线程发送POST?如果它们以串行方式发送POST,则意味着到同一tcp连接的多个活动P

  • 假设我有一个Executors静态工厂方法的ExecutorService实例。 如果我从某个线程提交了一个调用,其中RetVal不是线程安全的本地实例化对象,那么当我从同一个线程获得()它时,我需要担心retvals的完整性吗?人们说局部变量是线程安全的,但我不确定当您返回一个本地实例化的对象并从其他线程接收它时,它是否适用。 下面是我的定制实现,我只是为了测试。您可以忽略EType枚举。

  • 在PHP初期,是作为单进程的CGI来运行的,所以并没有考虑线程安全问题。 我们可以随意的在全局作用域中设置变量并在程序中对他进行修改、访问,内核申请的资源如果没有正确的释放, 也会在CGI进程结束后自动地被清理干净。 后来,php被作为apache多进程模式下的一个模块运行,但是这仍然把php局限在一个进程里, 我们设置的全局变量,只要在每个请求之前将其正确的初始化,并在每个请求之后正确的清理干净