MYSQL数据库MySQL中字符串索引对update的影响分析

MYSQL数据库MySQL中字符串索引对update的影响分析,第1张

概述介绍《MYSQL数据库MySQL中字符串索引对update的影响分析》开发教程,希望对您有用。

《MysqL数据库MysqL中字符串索引对update的影响分析》要点:
本文介绍了MysqL数据库MysqL中字符串索引对update的影响分析,希望对您有用。如果有疑问,可以联系我们。

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

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

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

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

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个小时左右.MysqL应用

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

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

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

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

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

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

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

更多关于MysqL相关内容感兴趣的读者可查看本站专题:《MysqL事务 *** 作技巧汇总》、《MysqL存储过程技巧大全》、《MysqL数据库锁相关技巧汇总》及《MysqL常用函数大汇总》MysqL应用

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

总结

以上是内存溢出为你收集整理的MYSQL数据库MySQL中字符串索引对update的影响分析全部内容,希望文章能够帮你解决MYSQL数据库MySQL中字符串索引对update的影响分析所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

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

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-01
下一篇2022-06-01

发表评论

登录后才能评论

评论列表(0条)

    保存