小编典典

为什么以及在哪里使用INDEXes-利弊

sql

我是数据库编程的新手,我想知道索引的负面影响是什么?据我了解,索引加快了必须在数据库中搜索特定值(例如SELECT)的操作。

考虑以下示例:

对于table Example(在column上具有索引)user_name,操作:

SELECT TestField FROM Example WHERE user_name=XXXX

作为索引的结果将更快。

我的问题是:使用索引有什么弊端?如果索引只是给我们带来好处(提高性能),为什么不将它们设置为默认值呢?


阅读 147

收藏
2021-03-23

共1个答案

小编典典

好吧,您可能可以填写有关索引的书,但总之,在创建索引时,这里需要考虑以下几点:

尽管它(主要)加快了选择的速度,但它却减慢了插入,更新和删除的速度,因为数据库引擎不必只写数据,也可以写索引。索引需要RAM中硬盘上的空间(并且更重要)。无法保存在RAM中的索引几乎没有用。仅有几个不同值的列上的索引不会加快选择的速度,因为它不能对很多行进行排序(例如,“
gender”列,通常只有两个不同的值-男性,女性)。

例如,如果您使用MySQL,则可以检查引擎是否通过在选择之前添加“ explain”来使用索引-对于上述示例 EXPLAIN SELECTTestField FROM Example WHERE username=XXXX

2021-03-23