pg、mysql、oracle同一列是否能创建两个索引

31 篇文章 0 订阅
25 篇文章 1 订阅

背景:

今天晚上完全带偏了,本意是想研究一下mysql方式数据的几种方式,测试时总会有点小问题,一再被打断。

数据库版本:

pg11.6、mysql5.7.29、oracle11.2.0.4

测试内容

同一列是否支持创建两个不同步索引

测试语句:

create table tt(id int primary key,val int ,desci varchar(100));
create index idx_val on tt(val);
create index idx_val2 on tt(val);

测试结果:

1、pg支持,无告警信息

satdb=# \d tt;
Table “public.tt”
Column | Type | Collation | Nullable | Default
--------±-----------------------±----------±---------±--------
id | integer | | not null |
val | integer | | |
desci | character varying(100) | | |
Indexes:
“tt_pkey” PRIMARY KEY, btree (id)
“idx_val” btree (val)
“idx_val2” btree (val)

2、mysql的都支持,但mysql有告警信息
mysql> create index idx_val2 on tt(val);
Query OK, 0 rows affected, 1 warning (0.02 sec)
Records: 0 Duplicates: 0 Warnings: 1
3、oracle直接报错
SQL> create index idx_val2 on tt(val);
create index idx_val2 on tt(val)
*
ERROR at line 1:
ORA-01408: such column list already indexed

疑问:

按照常理来说,在一个列上创建不同的两个索引,完成没有必要。但pg完成支持,意义在哪里。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值