回答

收藏

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

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

此处通常建议添加索引,以解决性能问题。" s+ N0 T1 r4 j/ r
(我只在说阅读和查询,我们都知道索引会使写入变慢)。# P/ H/ \" F1 p" W5 e
多年来,我已经在DB2和MSSQL上尝试了很多方法,结果总是令人失望。
! u: C5 d1 e3 z# F$ h我的发现是,无论索引有多“明显”,它都会使事情变得更好。事实证明,查询优化器更智能,而我的明智选择的索引几乎总是使事情变得更糟。
1 ?: ]: l# T0 \4 s我应该指出,我的经验主要与小型表(
5 i5 s' W4 p0 ]: M; N谁能提供一些切实可行的索引选择指南?% I: s# {9 z  [" K
正确的答案将是一系列建议,例如:
7 M4 l4 B, M  @- i永不/总是索引少于/多于NNNN记录的表( ]3 u& i+ y6 U- u2 |8 F6 `! I+ ?
从不/总是考虑多字段键上的索引
& u6 l8 L* p/ _! M8 A  Y& |3 J0 P7 T从不/始终使用聚簇索引
5 Z! w4 U/ v2 L  K永远不会/永远不会在单个表上使用超过NNN个索引
' `; w2 V: V. k0 X: h; t当[我渴望了解的某些魔术条件]时,永远不要/总是添加索引; s) ^. `% o5 l8 X9 U  E5 l

" o6 d3 ], K2 N) T1 k6 V& F理想情况下,答案将提供一些启发性的例子。
5 d$ S8 @3 m4 W, V                ( V" @0 ^( ~* O# z" E
解决方案:0 w9 }% @8 v: H" h1 Y2 [" a
               
1 g4 \: V- O: `  ]! }3 D% d; U3 p% O1 T0 U0 g0 F6 B; k
1 N1 G0 ^, F& @* e9 B/ @
                索引有点像化学疗法…太多了,它杀死了您…太少了,您就死了…做错了方法,然后就死了。您必须知道使它不会杀死您的数量,频率和种类。9 o$ p! L; q, {; ?% \
您的硬件,平台,环境,负载都将发挥作用。所以回答你的问题..
+ u  Y" x! K1 u7 Q是的,可能有时候。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则