社区
基础和管理
帖子详情
数据库索引添加原则?
amdgaming
2011-08-02 10:12:36
比如我有一张业务主表,字段比较多
现在我有很多报表,我需要按照 某个时间(比如创建时间,分配时间,) 查询 这个时候我加索引
但是这样的情况非常多,我又不能每个报表都加一个索引吧,经验值不是一个表最多5个索引么?
各位有什么好招啊?
...全文
353
15
打赏
收藏
数据库索引添加原则?
比如我有一张业务主表,字段比较多 现在我有很多报表,我需要按照 某个时间(比如创建时间,分配时间,) 查询 这个时候我加索引 但是这样的情况非常多,我又不能每个报表都加一个索引吧,经验值不是一个表最多5个索引么? 各位有什么好招啊?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
amdgaming
2011-08-05
打赏
举报
回复
哈哈 没有高人来回答下啊。////
给小弟解迷津啊
sc1234
2011-08-05
打赏
举报
回复
不建议直接业务表作为查询报表的数据源
索引会增加I/O开销
如果不是数据有实时要求 建议刷一张物化视图作为源
上面你加多索引也无关系
springchina_1
2011-08-04
打赏
举报
回复
实际工作中,如果发现查询速度比较慢,则需要查询哪几个字段,就对这几个字段建立索引
会大大加速
amdgaming
2011-08-03
打赏
举报
回复
[Quote=引用 11 楼 qyweiyy88 的回复:]
索引不是最多建5个,是最好不要超过5个
只要你这5个以上的索引使用率都非常高的话你可以建6个,7个。。。
不过你最好再用下外键,连线等方法试一下
[/Quote]
什么连线 指导下?
amdgaming
2011-08-02
打赏
举报
回复
[Quote=引用 5 楼 yixilan 的回复:]
建索引呗。
比如说:
A报表,用到TIME1,TIME2,就把这两个字段做为一个索引;
B报表,用到TIME3,TIME4,就把这两个字段做为一个索引;
这都没有问题的。
[/Quote]
但是 还有 C ,D,E F G呢
都建? 还是建一个 包含 各种time的 联合索引,。。。。
yixilan
2011-08-02
打赏
举报
回复
建索引呗。
比如说:
A报表,用到TIME1,TIME2,就把这两个字段做为一个索引;
B报表,用到TIME3,TIME4,就把这两个字段做为一个索引;
这都没有问题的。
ma_mh
2011-08-02
打赏
举报
回复
求解?哪种方法比较有效
lyhmy
2011-08-02
打赏
举报
回复
索引不是可以同时建立在几个字段上的么
yixilan
2011-08-02
打赏
举报
回复
加索引的主要目的,是想加快查询速度,是吧?
创建时间,分配时间,有没有一个主要的键呢?源表有没有按照某个时间建分区?
至于索引,我倒觉得,你把几个主要的时间加上索引,是可以的。建个五六个,都没有关系。
再多了也不好。不能都满足。
BenChiM888
2011-08-02
打赏
举报
回复
看你的描述,如果报表能够直接查询的话看样子数据量不是很大,所以你可以试试下面的方法
调用报表的时候
--重建索引
execute immediate 'create index ...';
报表处理逻辑
--删除原来的索引
execute immediate 'drop index ...';
布丁88
2011-08-02
打赏
举报
回复
索引不是最多建5个,是最好不要超过5个
只要你这5个以上的索引使用率都非常高的话你可以建6个,7个。。。
不过你最好再用下外键,连线等方法试一下
BenChiM888
2011-08-02
打赏
举报
回复
那真是没有好办法了,不想建立太多索引,想不出办法了,等楼下回答。
[Quote=引用 9 楼 amdgaming 的回复:]
你用完就删除,而你建索引也蛮慢的,而且还要写到业务里面。似乎不太好啊
[/Quote]
amdgaming
2011-08-02
打赏
举报
回复
你用完就删除,而你建索引也蛮慢的,而且还要写到业务里面。似乎不太好啊
amdgaming
2011-08-02
打赏
举报
回复
[Quote=引用 7 楼 benchim888 的回复:]
组合索引能够用到的规则是必须使用引导列。
如:(a,b,c) 是组合索引的话,A列必须在where条件中使用才可以用到这个索引,只用b或者只用c或者只用b,c 都不可以。
要根据你的实际情况考虑,还是建议你当查询报表的时候 新建索引,查询完毕删除索引。
引用 6 楼 amdgaming 的回复:
引用 5 楼 yixilan 的回复:
建索引呗。
比如说:
A报表,用到TI……
[/Quote]
这样啊,程序逻辑写这个不太好吧。。。。
BenChiM888
2011-08-02
打赏
举报
回复
组合索引能够用到的规则是必须使用引导列。
如:(a,b,c) 是组合索引的话,A列必须在where条件中使用才可以用到这个索引,只用b或者只用c或者只用b,c 都不可以。
要根据你的实际情况考虑,还是建议你当查询报表的时候 新建索引,查询完毕删除索引。
[Quote=引用 6 楼 amdgaming 的回复:]
引用 5 楼 yixilan 的回复:
建索引呗。
比如说:
A报表,用到TIME1,TIME2,就把这两个字段做为一个索引;
B报表,用到TIME3,TIME4,就把这两个字段做为一个索引;
这都没有问题的。
但是 还有 C ,D,E F G呢
都建? 还是建一个 包含 各种time的 联合索引,。。。。
[/Quote]
关于
数据库
添加
索引
的几个
原则
文章讨论了创建
数据库
索引
的
原则
,包括在频繁搜索、主键、连接操作、需要排序和WHERE条件中使用的列上建
索引
,以及针对范围查询的重要性,旨在提升查询性能。
mysql
添加
索引
最左优先_
数据库
正确建立
索引
以及最左前缀
原则
本文介绍了
数据库
索引
建立的
原则
,强调了复合
索引
和最左前缀
原则
的重要性。通过实例分析,说明如何通过创建多列
索引
来提高查询效率,特别是当WHERE子句涉及多个列时,最左前缀
原则
能够帮助优化查询路径,减少不必要的全表扫描。同时,文章提醒在创建多列
索引
时要考虑业务需求和列的使用频率,避免冗余
索引
。
让Mihon秒开漫画:
数据库
索引
优化实战指南
本文聚焦于开源Android漫画阅读器Mihon的本地
数据库
性能瓶颈,围绕SQLDelight框架展开
索引
优化实践。重点涵盖慢查询识别、复合
索引
设计(如按漫画ID+已读状态联合
索引
)、避免过度
索引
原则
,并指导使用Android Studio Database Inspector诊断问题、
添加
自定义
索引
及执行
数据库
维护命令。优化目标为启动<900ms、章节加载<480ms、UI帧率稳定67fps。
【力扣
数据库
知识手册笔记】
索引
本文围绕
数据库
索引
展开,介绍了
索引
的优缺点、数据结构(B树、B+树、Hash、位图
索引
),分析了使用B+树
索引
的好处及Hash与B+树
索引
的区别。还讲解了前缀
索引
、最左前缀匹配
原则
、
添加
索引
的
原则
,以及聚簇
索引
的概念和特点。
Hibernate使用
索引
及
索引
添加
原则
本文介绍了使用Hibernate在表和关联表上
添加
索引
的方法,包括表上加
索引
和关联表上加
索引
的具体实现。同时,文章还列举了
数据库
建立
索引
的常用
原则
,并针对千万级MySQL
数据库
的
索引
建立提供了注意事项和性能调整手段。
基础和管理
17,377
社区成员
95,112
社区内容
发帖
与我相关
我的任务
基础和管理
Oracle 基础和管理
复制链接
扫一扫
分享
社区描述
Oracle 基础和管理
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章