数据库 – 你怎么知道一个好的索引是什么?
发布时间:2020-07-22 23:43:23 所属栏目:MsSql 来源:互联网
导读:在Oracle中使用表时,您如何知道何时设置好索引而不是坏索引? 这取决于你的“好”和“坏”的含义.基本上你需要意识到你添加的每个索引都会提高该列搜索的性能(因此在person表的’lastname’列中添加索引会提高在其中包含“where lastname =”的查询的性能)但
在Oracle中使用表时,您如何知道何时设置好索引而不是坏索引? 解决方法这取决于你的“好”和“坏”的含义.基本上你需要意识到你添加的每个索引都会提高该列搜索的性能(因此在person表的’lastname’列中添加索引会提高在其中包含“where lastname =”的查询的性能)但是降低整个表的写入性能.原因是当您添加或更新行时,它必须添加或更新表本身以及该行所属的每个索引.因此,如果表上有五个索引,则每个添加必须写入六个位置 – 五个索引和表 – 并且在最坏的情况下更新可能会触及六个位置. 索引创建是查询速度和写入速度之间的平衡行为.在某些情况下,例如一个数据集市,每周只在一夜工作中加载一次数据但每天查询数千次,因此重载索引并尽可能加快查询速度是非常有意义的.但是,对于在线交易处理系统,您希望尝试在它们之间找到平衡点. 因此,简而言之,将索引添加到在选择查询中大量使用的列,但尝试避免添加太多,因此首先添加最常用的列. 在此之后,进行负载测试以了解性能如何在生产条件下做出反应,并进行大量调整以找到可保证的平衡. (编辑:岳阳站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sqlserver中操作主从关系表的sql语句
- SQL server 使用 内联结(INNER JOIN) 联结多个表 (以及过滤
- sql语句中如何将datetime格式的日期转换为yy-mm-dd格式
- Transactional replication(事务复制)详解之如何跳过一个
- SQL Server 压缩日志与减少SQL Server 文件大小的方法
- sqlserver 导出插入脚本代码
- SQL查询按日期范围折叠重复值
- sqlserver 错误602,未能在sysindexes中找到数据库 的解决办
- SQLserver中cube:多维数据集实例详解
- sql server中通过查询分析器实现数据库的备份与恢复方法分享