回答

收藏

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

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

此处通常建议添加索引,以解决性能问题。% K3 d( w2 X0 K! h; f
(我只在说阅读和查询,我们都知道索引会使写入变慢)。) j- j- _9 x7 E7 o, u# A% R
多年来,我已经在DB2和MSSQL上尝试了很多方法,结果总是令人失望。
- h" }( M5 E3 l/ ^8 z: s我的发现是,无论索引有多“明显”,它都会使事情变得更好。事实证明,查询优化器更智能,而我的明智选择的索引几乎总是使事情变得更糟。
7 s; s& [* K1 S( s) |+ s我应该指出,我的经验主要与小型表(6 H- T% P( {1 h( H
谁能提供一些切实可行的索引选择指南?( @" q# [3 M7 @" W+ \5 ~
正确的答案将是一系列建议,例如:
0 U3 v; ]7 B. S+ H4 {" t2 s2 T3 P永不/总是索引少于/多于NNNN记录的表
2 G! n4 i: c$ J" ~6 z. _  _从不/总是考虑多字段键上的索引
6 W  }. ~& M9 Z7 p9 M& d) j; O从不/始终使用聚簇索引
* @) a2 a8 F5 t% T4 ~9 f3 N/ J永远不会/永远不会在单个表上使用超过NNN个索引
; K1 `6 `; c$ c4 l当[我渴望了解的某些魔术条件]时,永远不要/总是添加索引" ^8 ]' C" L. u7 B1 G* s

( j4 p6 B% C9 y9 c- ]# M/ d理想情况下,答案将提供一些启发性的例子。) Y- z+ B' p' o* c9 Q3 A
                . A4 V: |! R, U% e$ ~9 b# E
解决方案:0 }* y& t7 L% h& R- g/ J
               
& y6 N0 R8 h  ]1 o: r3 M4 h4 O% G
9 _# J2 M4 P- d* R- a+ y8 i
( n7 O9 e& a/ k2 h1 B) S! z                索引有点像化学疗法…太多了,它杀死了您…太少了,您就死了…做错了方法,然后就死了。您必须知道使它不会杀死您的数量,频率和种类。
7 g' G1 l) r2 m您的硬件,平台,环境,负载都将发挥作用。所以回答你的问题..
4 P6 D  K% _, F! h. @! D是的,可能有时候。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则