关于数据库索引

关于数据库索引,第1张

索引会提高数据定位的速度。

select 、delete 、where 都会引用到where条件,如果条件中有符合索引的,则会提高速率。

insert数据会降低一定的速度,但是远远比不上索引带来的效率。

update首先也是需要先查询到数据的。而这个定位的销号几乎可以忽略update数据本身带来的消耗。

所以建议还是加上索引。

PS,有在极端的情况下反而去掉索引。

例如数据迁移,需要导入大量的数据。这个时候可以先删除索引,待数据导入完之后在重新建索引。

如果只是单独增加一个字段索引,当然不会影响到已有的索引。

但是问题是如果你增加一个字段索引,对于sql语句来说where后面如果正好有好几个有索引的字段,则可能会影响到sql的执行计划。这个概率还是比较大的。

32核心,30多G 内存,一千万的条目在时间上建立非聚集索引,用了 7 分钟。

一亿的话,我这估计要大于70分钟。

聚集索引时间更长。 这个需要索引排序,建立分支索引复合B树。

一般海量数据不如新建立表,建立好索引,然后逐批导入数据。

差劲点的机器,一亿数据建立索引基本就是死机或是僵尸状态。

只能慢慢的等了,一天都不行,就上边那方法。

索引跟类型关系很大,一般定长字段比变长字段简单,IO消耗小,时间节省,复合索引变长越多就越复杂,其次就是 一表多索引,这种情况 会衍生各种存储索引结构,就更费时间了。

表有多少数据页,多少文件,每页多少槽位都会影响时间。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6699988.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-27
下一篇2023-03-27

发表评论

登录后才能评论

评论列表(0条)

    保存