首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >联合查询是否充当一个事务?

问联合查询是否充当一个事务?
EN

Stack Overflow用户
提问于 2015-01-13 11:31:59
回答 1查看 219关注 0票数 2

假设,我有这样的疑问:

代码语言:javascript
复制
SELECT id1 AS id, SUM(`value`), 'in' AS `type` FROM transaction WHERE id1 = 3434
UNION
SELECT id2 AS id, SUM(`value`), 'out' AS `type` FROM transaction WHERE id2 = 4568

查询2是否看到与查询1开始时相同的数据?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-13 12:10:56

首先,您的示例是一个查询,而不是两个查询。所编写的查询将扫描源数据两次,但仍然是一个查询。

您要寻找的属性是ACID的“隔离”属性。您可以了解更多关于ACID 这里和MySQL的支持这里的信息。

大多数数据库,包括MySQL,都与正确的配置参数兼容。但是,这是由各种参数控制的,特别是单个事务的隔离级别。因为完全遵循ACID可能需要大量的开销(例如,一旦在同一表上启动了UPDATE查询,就会阻止SELECT运行),所以有时会放松一些条件。

酸遵从性取决于特定配置的参数和存储引擎。但是,如果需要的话,MySQL可以并且确实支持隔离。

还要注意的是,UNION与隔离关系不大,只是需要对数据进行两次扫描,这将使隔离的缺失更加明显。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27921175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档