Oracle加索引

首先,查看目前已经建立的索引
select index_name from all_indexes where table_name = 'PICTURE';
果然比较弱智,只有系统给主键自建的索引:SYS_C55001
还犯了一个错误,一般情况下,oracle是不管大小写的,但上面查询语句里面的table_name必须大写,如果写成'picture'则是没有记录。

接着,建立索引。
create index picture_album_idx on picture (aid);
create index picture_user_idx on picture (userid);
create index picture_cat_idx on picture (cid);

第三,再重复第一步,验证一下,是否成功。

Oracle数据库中的索引如果添得不当,可能会导致查询性能下降而不是提升。以下是一些可能导致这种情况的原因: 1. **过多索引**:为表中的每个列都创建索引虽然看起来可以速查询,但实际上会增存储空间开销,并在插入、删除和更新数据时消耗更多时间。因为每次操作都需要维护所有相关的索引。 2. **冗余索引**:针对已经包含其他索引列的组合,额外创建索引可能导致资源浪费,因为数据库系统需要判断是否应该优先使用哪个索引。 3. **选择不适合的索引类型**:如对文本字段使用B树索引,而非全文索引,对于模糊搜索效率不高。 4. **未优化的覆盖索引**:如果索引包含了查询所需的所有信息,那么查询可以直接从索引中完成,而无需访问表,但如果索引设计不合理,则可能导致全表扫描。 5. **索引碎片化**:频繁的数据修改可能导致索引变得不连续,这将降低查询性能。定期重建或合并索引可以帮助解决这个问题。 6. **索引键长度过长**:如果索引键太长,可能会占用较多的存储空间,并影响I/O性能。 如果你遇到这样的情况,你可以采取以下措施: - 分析查询计划以确定哪些索引被用于查询,哪些可能是瓶颈。 - 删除冗余或不必要的索引。 - 优化索引结构,例如选择合适的索引类型,调整索引大小等。 - 考虑使用分区或分片来分散负载。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值