TiDB 索引

唯一索引

  • KEY: TableId_IndexId_IndexColumnValue
  • VALUE: row_id
    • 聚簇表:row_id=主键
    • 非聚簇表: row_id = TidbRowID

二级索引

  • KEY: TableID_IndexID_Index_ColumnsValue_{RowID1}{RowID2}...
  • Value: null

二级索引可能重复,所以KEY可能会附带多个RowID,所以Value可以为空;


索引注意事项:

  • 建表时添加或者ALTER TABLE ADD KEY 添加
  • 目前只一条ALTER无法添加多个索引;
  • 联合索引支持最左匹配原则
  • 联合索引左侧必须是等值才会用到联合索引后面的部分;
  • 索引覆盖不需要回表,从而提升性能;
  • 表达式索引是一种特殊索引,可以将索引建立与表达式上;select @@tidb_allow_function_for_expression-index 查看哪些函数可以用于表达式;

不可见索引:

  • 修改索引的可见性:ALTER TABLE t1 ALTER INDEX c1 INVISIBLE/VISIBLE; 
  • 不可见索引不会被查询优化器使用;
  • 不可见索引仅仅对优化器而言,任然可以被修改和删除;
  • 及时使用SQL Hint USE INDEX强制使用索引,优化器也无法使用不可见索引;
  • 不允许将主键索引设置为不可见

TiDB和MySQL 索引区别:

  • TiDB不支持FULLTEXT,HASH和SPATICAL索引
  • 不支持降序索引
  • 无法添加或者删除CLUSTERED类型的主键
  • 可见/不可见只能单表修改,无法像mysql那样通过use_invisible_indexs开关统一修改;

查看索引的Region分布,来查看索引是否均匀地分布在Region中,从而查看是否有热点;

SHOW TABLE student2 INDEX idx_name REGIONS;

 

        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值