gpt4 book ai didi

MySQL中字符串索引对update的影响分析

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 30 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章MySQL中字符串索引对update的影响分析由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文分析了MySQL中字符串索引对update的影响。分享给大家供大家参考,具体如下:

对某一个类型为varchar的字段添加前缀索引后,基于该子段的条件查询时间基本大幅下降;但对于update操作,所耗的时间却急剧上升,主要原因是在更新数据的同时,mysql会执行索引的更新.

下面做了一个简单的试验.

(1)首先对某个亿级记录的表字段所有记录执行更新

?
1
2
3
for idx in range(1, count +1):
   sql = "update tbl_name set platforms='" +datetime.now().strftime('%Y%m%d%H%M%S%f ')+"' where id="+str(idx)+ ";"
   cursor . execute (sql)

统计用时4个小时左右.

(2)然后对某个亿级记录的表子段添加索引

?
1
2
sql = "alter table tbl_name add index platforms_index(platforms(8));"
cursor . execute (sql)

然后再执行同上的update语句,统计用时将近9个小时.

(3)由此可见字符串索引对于update等操作在性能上有极大的影响.

虽然以上小试验并没有多大实际意义,但是可以延伸一下,如果不对该字段添加索引,而是直接把该字段数据存储到另一个小表b,然后在该表添加一个id字段映射到小表b,然后再执行update操作;这样性能又如何呢?

理论上性能应该与记录的重复度有关,如果重复率高,小表b将会很小(unique去重);而更新所用时间为通过原表映射查询表b字段的时间+更新表b记录的时间,总体上应该比更新记录的时间+更新索引的时间要少.

不过只是估算,结果如何感兴趣的朋友可以动手验证一下.

希望本文所述对大家MySQL数据库计有所帮助.

最后此篇关于MySQL中字符串索引对update的影响分析的文章就讲到这里了,如果你想了解更多关于MySQL中字符串索引对update的影响分析的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com