TIDB数据库使用天条

不支持的天条

  1. 存储过程(如果即使支持,也不要使用存储过程,难于移植和扩展);
  2. 视图;
  3. 触发器;
  4. 自定义函数;
  5. 外键约束;
  6. 全文索引;
  7. 空间索引;
  8. 非UTF-8字符;

集差异性天条

  1. 表上必须要有唯一索引或者主键

  2. 自增列(auto_increment)只确保唯一,没有顺序性概念;

  3. 所以在insert的时候不要设置自增列的值事务隔离级别采用的是可重复读(TIDB与MySQL和Oracle的可重复读是有区别的,TIDB的可重复读隔离机制个人觉得类似于串行化);

  4. Select …for update 不会给数据枷锁,只是在更新本事务提交时报错而已;

  5. 事务大小限制:
    1.单条 KV entry 不超过 6MB;
    2.KV entry 的总条数不超过 30w(官网建议值10000,但是要具体到表上的索引,根据索引数量好像是2倍关系的递减);

    1. KV entry 的总大小不超过 100M;
  6. BDML语句:基本MySQL语句都支持,开发中只碰到格式化后的select count(1)报错;

  7. DDL语句:
    1.Add/Drop primary key 操作目前不支持。
    2.Add Index/Column 操作不支持同时创建多个索引或列。
    3.Drop Column 操作不支持删除的列为主键列或索引列。
    4.Add Column 操作不支持同时将新添加的列设为主键或唯一索引,也不支持将此列设成 auto_increment 属性。
    5.Change/Modify Column 操作目前支持部分语法,细节如下:

     在修改类型方面,只支持整数类型之间修改,字符串类型之间修改和 Blob 类型之间的修改,且只能使原类型长度变长。此外,不能改变列的 unsigned/charset/collate 属性。
     这里的类型分类如下:
     具体支持的整型类型有:TinyInt,SmallInt,MediumInt,Int,BigInt。
     具体支持的字符串类型有:Char,Varchar,Text,TinyText,MediumText,LongText。
     具体支持的 Blob 类型有:Blob,TinyBlob,MediumBlob,LongBlob。
     在修改类型定义方面,支持的包括 default value,comment,null,not null 和 OnUpdate,但是不支持从 null 到 not null 的修改。
    

个人建议

  1. 索引
    业务字段即使多个字段组合构成唯一索引时,必须建成唯一索引;
    减join的使用,尽量在业务层面实现join,如果非要使用关联字段要求要索引;
    组合索引,数据区分度高的字段在最前面

  2. 语句
    禁止使用存储过程
    不要使用count(列),尽量使用count(1)
    Sum函数注意null
    不得使用级联操作(TIDB也不支持)
    不建议使用truncate
    分批删除使用limit

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值