分布式数据库系统不具有的特点

阿里云知识 阿里云知识 4年前 (2019-12-13) 176次浏览 0个评论 扫描二维码

阿里云分布式数据库目前还不支持触发器、存储过程、自定义函数、外键,除此之外,阿里云分布式数据库支持绝大部分MySQL5.7的语法。

不支持的特性

  • 存储过程
  • 视图
  • 触发器
  • 自定义函数
  • 外键约束
  • 全文索引
  • 空间索引
  • 非UTF8字符集

与MySQL有差异的特性

自增ID阿里云分布式数据库的自增ID(AutoIncrementID)只保证自增且唯一,并不保证连续分配。阿里云分布式数据库目前采用批量分配的方式,所以如果在多台阿里云分布式数据库上同时插入数据,分配的自增ID会不连续。

内建函数阿里云分布式数据库支持常用的MySQL内建函数,但是不是所有的函数都已经支持,具体请参考官方语法文档。

DDL阿里云分布式数据库实现了F1的异步Schema变更算法,DDL执行过程中不会阻塞线上的DML操作。目前已经支持的DDL包括:

  • CreateDatabase
  • DropDatabase
  • CreateTable
  • DropTable
  • AddIndex
  • DropIndex
  • AddColumn
  • DropColumn
  • AlterColumn
  • ChangeColumn
  • ModifyColumn
  • TruncateTable
  • RenameTable
  • CreateTableLike

事务

阿里云分布式数据库使用乐观事务模型,在执行Update、Insert、Delete等语句时,只有在提交过程中才会检查写写冲突,而不是像MySQL一样使用行锁来避免写写冲突。所以业务端在执行SQL语句后,需要注意检查commit的返回值,即使执行时没有出错,commit的时候也可能会出错。

Loaddata

阿里云分布式数据库在执行loaddata时,默认每2万行记录作为一个事务进行持久化存储。如果一次loaddata操作插入的数据超过2万行,那么会分为多个事务进行提交。如果某个事务出错,这个事务会提交失败,但它前面的事务仍然会提交成功,在这种情况下一次loaddata操作会有部分数据插入成功,部分数据插入失败。而MySQL中会将一次loaddata操作视为一个事务,如果其中发生失败情况,将会导致整个loaddata操作失败。

喜欢 (0)
阿里云最新优惠活动,点击查看
腾讯云最新优惠活动,点击查看
腾讯云香港及海外免备案服务器优惠活动,点击查看
华为云服务器本周优惠活动,点击查看

文章评论已关闭!