Atlas 分布式版重磅来袭(2)_Access数据库教程

编辑Tag赚U币
教程Tag:暂无Tag,欢迎添加,赚取U币!

推荐:详解数据库高可用架构之路
数据库高可用架构对于我们这些应用端开发的人来说是一个比较陌生的领域,是在具体的数据库产品之上搭建的环境,需要像DBA这样对数据库产品有足够的了解才能有所涉及,虽然不能深入其中,但可以通过一些经典的高可用架构学习其中的思想。就我所了解到的有以下几种: MyS

  事务在Atlas的非sharding的表是完全支持的, 但是对于sharding的表, Atlas只能提供部分的支持(不支持跨dbgroup的事务). Atlas只支持事务中涉及单个dbgroup的语句, 例如有两个dbgroup0, dbgroup1, 其切分方式是range, 规则是dbgroup0: 0 - 999, dbgroup1: 1000 - 2000,

  mysql> begin; Query OK, 0 rows affected (0.00 sec) mysql> insert into sharding_test(id, name, age) values(1, 'test', 0); Query OK, 1 row affected (0.00 sec) mysql> insert into sharding_test(id, name, age) values(1500, 'test', 0); ERROR 1179 (sqlst): Proxy Warning - sharding dbgroup is in trans, transaction will not work across multi dbgroup mysql> /*master*/select * from sharding_test where id < 1000; +----+------+------+----------+----------+ | id | name | age | birthday | nickname | +----+------+------+----------+----------+ | 1 | test | 0 | NULL | NULL | +----+------+------+----------+----------+ 1 row in set (0.00 sec) mysql> /*master*/select * from sharding_test; ERROR 1179 (sqlst): Proxy Warning - sharding dbgroup is in trans, transaction will not work across multi dbgroup mysql> commit; Query OK, 0 rows affected (0.00 sec) mysql> /*master*/select * from sharding_test; +----+------+------+----------+----------+ | id | name | age | birthday | nickname | +----+------+------+----------+----------+ | 1 | test | 0 | NULL | NULL | +----+------+------+----------+----------+ 1 row in set (0.00 sec)

  请注意第二条语句, 由于之前将insert和dbgroup0绑定了, 所以从此之后Atlas在此事务中只接受涉及dbgroup0的语句, 其他语句将会执行失败. "/*master*/select * from sharding_test;" 执行失败是因为, 这个语句会命中所有的dbgroup, 也是同理, 不支持这种语句. 在commit之后, sharding dbgroup不再处于事务状态, 就可以执行跨shard的操作了

  换句话说, 如果是hash方式sharding的表, 基本上事务是无法支持的, 因为hash的表, 大部分操作都是会涉及多个dbgroup的.

  增加节点

  注意: 暂时只支持range方式的节点扩展, hash方式由于需要数据迁移, 暂时未做支持.

  扩展节点在保证原来节点的范围不改变的情况下, 如已有dbgroup0为范围0 - 999, dbgroup1为范围 1000 - 1999, 这个时候可以增加范围>2000的节点. 如增加一个节点为2000 - 2999, 修改配置文件, 重启Atlas即可.

分享:SQL编程之高级查询及注意事项
1.什么是子查询? 当一个查询是另一个查询的条件时,称之为子查询。子查 询可以使用几个简单命令构造功能强大的复合命令。子查询最常用于SELECT-SQL命令的 WHERE子句中。子查询是一个 SELECT 语句,它嵌套在一个 SELECT、SELECT...INTO 语句、INSERT...INTO 语句、DELET

共2页上一页12下一页
来源:模板无忧//所属分类:Access数据库教程/更新时间:2015-05-18
相关Access数据库教程