gpt4 book ai didi

mysql - 为什么准备好的语句由每个 session 管理?

转载 作者:搜寻专家 更新时间:2023-10-30 22:31:02 24 4
gpt4 key购买 nike

为什么准备好的语句由每个 session 管理?

我不确定所有数据库都处理每个 session 的准备好的语句。但是 postgresql 和 mysql(也许)会。

为什么它们不在 session 之间共享?有什么理由吗?

例如,连接池中有许多连接,连接共享相同的查询并生成相同的准备语句。为什么数据库不允许连接共享准备好的语句?

最佳答案

维护任何共享缓存都是昂贵的 - 你应该保护缓存免受竞争条件的影响,你应该清理缓存,......这是第一个论点。第二个参数更重要——准备好的语句是缓存的执行计划——但这个计划针对一个参数向量进行了优化。当您使用不同参数的向量时,该向量的计划可能又是次优的。有一种理念,因此任何用户都可以使用不同的载体,然后需要不同的计划。使用 session 共享计划缓存不会消除生成计划的开销(尽管这种开销对于快速简单查询来说是最小的),但会消除与共享数据管理相关的开销和竞争条件,并部分降低使用次优准备计划的风险。

关于mysql - 为什么准备好的语句由每个 session 管理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43279867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com