【mysql】关于字符串索引对update的影响
来源:互联网 发布:学校网络和信息化建设 编辑:程序博客网 时间:2024/05/09 20:11
对某一个类型为varchar的字段添加前缀索引后,基于该子段的条件查询时间基本大幅下降;但对于update操作,所耗的时间却急剧上升,主要原因是在更新数据的同时,mysql会执行索引的更新。
下面做了一个简单的试验。
(1)首先对某个亿级记录的表字段所有记录执行更新:
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)然后对某个亿级记录的表子段添加索引:
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】关于字符串索引对update的影响
- mysql 行锁小技巧 索引对行锁的影响 批量update的时候容易出现死锁
- mysql字段对索引的影响
- mysql 类型转换对索引的影响
- mysql中的索引对查询的影响
- 关于SQLite索引对写入性能影响的测试
- MySQL索引与存储方式对性能的影响
- mysql索引、存储方式对性能的影响
- 类型转换对 MySQL 选择索引的影响
- Mysql查询语句中的引号对索引的影响
- 类型转换对 MySQL 选择索引的影响
- mysql索引、存储方式对性能的影响
- 类型转换对 MySQL 选择索引的影响
- mysql的存储引擎innodb、myisam对插入影响和索引对插入的影响
- 索引对排序的影响
- MySQL之索引:索引字段使用顺序对复合索引有效性的影响
- 【MySQL基础】MySQL关于load对auto_increment字段的影响
- update对consistent gets的影响
- 编写高效的CSS选择器
- B2C网站购物车的封装
- Android 抽屉类SlidingDrawer的使用
- c++调用python脚本
- 数字的正则表达式
- 【mysql】关于字符串索引对update的影响
- Java正则表达式的解释说明(摘抄)
- 去掉ckeditor的边框及jquery插件悟通方法
- android 应用中加入cnzz
- 数据库中如何获取上一条..下一条..首尾记录
- IOS学习文章汇总
- 关于Socket通信的一点备忘录
- spring加载配置web
- uboot 内核传参