我有创建临时表的存储过程。然后我想执行一个连接这些临时表的查询。
问题在于,在 Golang 的 database/sql 设计中,确保后续查询获得相同连接的唯一方法是创建事务。
如果我为了访问临时表而将大部分 SELECT 包装在事务中,我是否自找麻烦?我知道我会失去一些性能/可扩展性,因为我将保持池中的连接而不是允许它们在查询之间返回。但我想知道我是否会开始看到此策略的锁定或其他严重问题。
我需要这样做的原因是因为我的许多表的 MySQL 执行计划非常糟糕(我正在跨大表进行多个连接)。我想执行一些中间查询并将它们的结果存储在临时表中以避免这个问题。
哆啦的时光机
相关分类