【问题标题】:mysql prepared statements stores(caches) result of select?mysql准备好的语句存储(缓存)选择的结果?
【发布时间】:2012-05-05 23:28:49
【问题描述】:

首先,本题参考prepared statements的c api,mysql 5.1.48版本。

我有一个程序(A)执行“选择”,另一个程序(B)执行“插入/更新” 我希望程序(A)在程序(B)的“插入”之后执行“选择”以识别新行。

  1. 假设程序(A) 使用准备好的语句生成“select”结果集。
  2. 现在,程序(B)“插入”新行。
  3. 当 program(A) “select” 使用相同的预处理语句时,它不会返回新插入的行。

我尝试在语句句柄上调用 mysql_stmt_reset() 但没有效果。

如何让程序 (A) 识别出相关表已更改并获取新数据?
(如果 program(A) 实际上正在缓存结果,我想在 db 表保持不变的情况下保持这种行为。)

当更新一行并再次选择时,将检索更新的信息。但是新插入的行不会被选中!呸。

谢谢

【问题讨论】:

  • 尝试删除 my.cnf 中的 query_cache,但这会显着降低查询性能。
  • 如果可能,我想利用缓存行为。除非db表中的数据发生变化,否则不应该有办法保留缓存吗?

标签: mysql caching prepared-statement


【解决方案1】:

记录在案,

导致问题的原因是自动提交关闭。

【讨论】:

    猜你喜欢
    • 2014-02-14
    • 2012-01-02
    • 1970-01-01
    • 2010-09-18
    • 2013-08-02
    • 2016-08-26
    • 1970-01-01
    • 2015-08-01
    • 2018-12-21
    相关资源
    最近更新 更多