回答

收藏

数据库索引:是好事还是坏事还是浪费时间?

技术问答 技术问答 399 人阅读 | 0 人回复 | 2023-09-14

此处通常建议添加索引,以解决性能问题。8 _) a4 O# C, m; K
(我只在说阅读和查询,我们都知道索引会使写入变慢)。% u; ]5 ?5 r" W9 K5 v
多年来,我已经在DB2和MSSQL上尝试了很多方法,结果总是令人失望。% [/ Z' |$ `" I6 H
我的发现是,无论索引有多“明显”,它都会使事情变得更好。事实证明,查询优化器更智能,而我的明智选择的索引几乎总是使事情变得更糟。
( o* j5 ]" d9 j/ P4 U我应该指出,我的经验主要与小型表(
- F5 J% }+ \( Y2 ?9 |* q谁能提供一些切实可行的索引选择指南?+ C- \) l# V4 Y" Z* a4 k" |
正确的答案将是一系列建议,例如:
# H2 t, @; u) ^7 V% m( [0 k永不/总是索引少于/多于NNNN记录的表3 \" }2 p) O( M6 u! v9 w0 N/ U
从不/总是考虑多字段键上的索引
# }  D, @0 \/ S; L: E) m从不/始终使用聚簇索引
& H' Y4 {# V% Y) O/ }/ c永远不会/永远不会在单个表上使用超过NNN个索引# d4 {  v( T3 r5 m) I' P* A+ b
当[我渴望了解的某些魔术条件]时,永远不要/总是添加索引
* N* G7 C/ ^- V
5 y: H( b5 g. d
理想情况下,答案将提供一些启发性的例子。5 ~2 v( k' L( N4 Z; m! V( [
                ' ?' n4 v/ J* J0 g0 q7 R
解决方案:
1 k3 r$ v& L2 W$ q                . x1 w2 P! I/ j5 X& k9 N6 B
/ Z4 k+ q( X8 f6 I
3 x. }( t+ Q2 \
                索引有点像化学疗法…太多了,它杀死了您…太少了,您就死了…做错了方法,然后就死了。您必须知道使它不会杀死您的数量,频率和种类。
2 r7 v9 n$ J6 y& W" T; d您的硬件,平台,环境,负载都将发挥作用。所以回答你的问题..
: Z2 b* F' M1 c- y7 w( X! K是的,可能有时候。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则