【发布时间】:2012-05-05 23:28:49
【问题描述】:
首先,本题参考prepared statements的c api,mysql 5.1.48版本。
我有一个程序(A)执行“选择”,另一个程序(B)执行“插入/更新” 我希望程序(A)在程序(B)的“插入”之后执行“选择”以识别新行。
- 假设程序(A) 使用准备好的语句生成“select”结果集。
- 现在,程序(B)“插入”新行。
- 当 program(A) “select” 使用相同的预处理语句时,它不会返回新插入的行。
我尝试在语句句柄上调用 mysql_stmt_reset() 但没有效果。
如何让程序 (A) 识别出相关表已更改并获取新数据?
(如果 program(A) 实际上正在缓存结果,我想在 db 表保持不变的情况下保持这种行为。)
当更新一行并再次选择时,将检索更新的信息。但是新插入的行不会被选中!呸。
谢谢
【问题讨论】:
-
尝试删除 my.cnf 中的 query_cache,但这会显着降低查询性能。
-
如果可能,我想利用缓存行为。除非db表中的数据发生变化,否则不应该有办法保留缓存吗?
标签: mysql caching prepared-statement