GTS 的隔离级别默认为读未提交,该模式中下表 select 语句的 SQL 修饰用法都是支持的;使用 hint 可以让 GTS 达到读已提交,该模式下 select 语句的用法只能部分支持,具体的支持强度如下表所示。
GTS 的读 hint 为:/
+txc({ ‘LEVEL’:’READCOMMITED’})/,用法举例如下:/
+txc({ ‘LEVEL’:’READCOMMITED’})/select name from tb where id =1;
DML语句支持
类型 | SQL 实例 | 是否支持 |
AND & OR | UPDATE … WHERE col_name1=expr1 AND col_name2= expr2 | 是 |
LIKE | UPDATE … WHERE col_name1 LIKE ‘NE’ | 是 |
通配符 | UPDATE … WHERE col_name1 LIKE ‘NE%’ | 是 |
BETWEEN | UPDATE … WHERE col_name1 BETWEEN expr1 AND expr2 | 是 |
ON DUPLICATE | INSERT INTO tb1_name [(col_name,…)]VALUES ({expr | DEFAULT},…),(…),…[ ON DUPLICATE KEY UPDATEcol_name=expr, … ] | 是 |
类型 | SQL 实例 | 读未提交 | 读已提交 |
AND & OR | SELECT * FROM tb1_name WHERE col_name1=expr1 AND col_name2= expr2 | 是 | 是 |
ORDER BY | SELECT col_name1, col_name2 FROM tb1_name ORDER BY col_name1 | 是 | 是 |
GROUP BY | SELECT col_name1, col_name2 FROM tb1_name GROUP BY col_name1 | 是 | 是 |
LIKE | SELECT col_name1, col_name2 FROM tb1_name WHERE col_name1 LIKE ‘NE’ | 是 | 是 |
通配符 | SELECT col_name1, col_name2 FROM tb1_name WHERE col_name1 LIKE ‘NE%’ | 是 | 是 |
EXISTS | SELECT col_name1, col_name2 FROM tb1_name WHERE EXISTS (expr1) | 是 | 是 |
IN | SELECT col_name1, col_name2 FROM tb1_name WHERE col_name1 IN (expr1, expr2,…) | 是 | 是 |
BETWEEN | SELECT col_name1, col_name2 FROM tb1_name WHERE col_name1 BETWEEN expr1 AND expr2 | 是 | 是 |
ON DUPLICATE | INSERT INTO tb1_name [(col_name,…)]VALUES ({expr | DEFAULT},…),(…),…[ ON DUPLICATE KEY UPDATE col_name=expr, … ] | 是 | 是 |
ALIASES | SELECT t1. col_name1, t2.col_name2FROM tb1_name AS t1, tb2_name AS t2WHERE t1. col_name=expr AND t2. col_name=expr | 是 | 是 |
TOP | SELECT TOP 2 * FROM tb1_name | 是 | 是 |
LIMIT | SELECT col_name1, col_name2 FROM tb1_name LIMIT 5 | 是 | 是 |
| SELECT col_name1, col_name2FROM tb1_nameJOIN tb2_name>ON tb1_name. col_name1= tb2_name. col_name1 | 是 | 否 |
| SELECT col_name1, col_name2 FROM tb1_nameUNIONSELECT col_name1, col_name2 FROM tb2_name | 是 | 否 |
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在阿里云的Global Transaction Service (GTS)中,确实提供了对事务隔离级别的支持,以满足不同场景下的数据一致性和并发处理需求。您提到的读未提交(Read Uncommitted)是GTS的默认隔离级别,在这个级别下,事务可以读取到其他事务尚未提交的数据,这可能会导致脏读现象。
为了达到更高的数据一致性,可以通过使用Hint来设置GTS的事务为读已提交(Read Committed)模式,这样事务只能读取到已经提交的数据,避免了脏读问题。您给出的示例txc({ 'LEVEL':'READCOMMITED' })
正是用来开启读已提交模式的Hint用法。
关于DML(Data Manipulation Language,数据操作语言)语句的支持情况,当采用读已提交模式时,并非所有SQL语法都能得到支持。具体来说:
如果需要了解更详细的SQL支持情况,建议查阅阿里云GTS的官方文档,那里会有最新的兼容性说明和最佳实践指导,帮助您更好地应用GTS于您的业务场景中。