对于Oracle而言,与应用程序调优相关,何时在表上没有索引以及为什么有意义?什么时候在桌子上没有索引是有意义的,为什么?
回答
如果一个表的数据非常少(少量的行),那么它不会为您使用索引。索引使得它能够快速搜索特定属性,并且您正在使用的应用程序不需要快速查找,那么使用索引对您而言几乎没有任何作用。
非常感谢你这么多! –
您会惊讶于小桌子上的索引如何产生重大影响,例如如果表格被非常频繁地查询。完整索引扫描可能只需要读取1个块,而读取表格则需要读取至少2个块。 –
有关联到其索引的成本:
- 它占用的磁盘空间
- 它会减慢更新(索引需要被更新)
- 它使查询计划更复杂(稍慢,但更重要的是增加了做出错误决策的可能性)
这些成本应该被更有效的查询处理(更快,更少的I/O)的好处所抵消。
如果索引不足以证明成本合理,则索引将为负数。
特别是,如果你的数据分布很低(认为像'Y'和'N'这样的标志),索引不会有多大帮助。可以这样想:如果索引中不同值的数量很少,优化器可能会选择不使用索引。有趣的是,如果索引中的列为空,如果您的查询条件包含实际值,因为空值没有编入索引,这意味着只有实际值(非空)位于该特定索引中,从而不评估表中的大部分行。在“is null”的情况下,它永远不会使用索引 - 如果你有一个带有“where”子句的查询,比如“where mytable.mycolumn为null”,则放弃你在这里输入的所有索引。
- 1. 什么时候放弃MVVM有意义?
- 2. 什么时候有服务层没有意义?
- 3. 为什么在'有'的时候有'where'
- 4. 什么时候进行索引,在Mongoid中索引什么?
- 5. QTreeWidget :: currentItem什么时候没有选择什么时候返回?
- 6. 候选键有什么意义?
- 7. 什么时候预设一个散列是有意义的?
- 8. 为什么gettimeofday()和time_t没有意义?
- 9. 为什么const有意义?
- 10. 什么时候sys.stdin在Python中没有?
- 11. 什么时候和为什么没有实现(java.lang.reflect.InvocationTargetException)发生?
- 12. 为什么mysql没有使用索引
- 13. 它为什么说Global Name没有定义它的时候? Python
- 14. 为什么搜索没有定义?
- 15. 什么时候编写isEqual在Swift中有意义?
- 16. 什么是string array [] =“”;是什么意思?为什么它有效?
- 17. 在子集化时允许使用零索引有什么意义?
- 18. 为什么MySql没有在我们的表上使用索引?
- 19. 什么时候是Malloc的好主意?
- 20. ::什么都没有加前缀时是什么意思?
- 21. 测试什么时候没有属性
- 22. DatePicker没有什么时候点击
- 23. 调整哈希表的大小有意义吗?什么时候?
- 24. 什么时候在Rails中使用“|| =”运算符?它的意义是什么?
- 25. 什么时候File.join有用?
- 26. 什么时候InputStream.available()有用?
- 27. 什么时候__proto__有用?
- 28. 为什么在aspx.cs中page_load有意义?
- 29. ThisTime&TotalTime有什么区别?为什么有时候两个值是相等的,有时候会不一样?
- 30. Google是什么时候为一个网页编制索引的?
欢迎来到Stackoverflow!您能否详细说明您的问题,比如代码或其他事情,以便人们能够尽早解决问题并帮助您?谢谢! – manetsus