日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

mysql修改索引对交易影响吗_MySQL中字符串索引对update的影响分析

發(fā)布時間:2025/1/21 数据库 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mysql修改索引对交易影响吗_MySQL中字符串索引对update的影响分析 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文分析了mysql中字符串索引對update的影響。分享給大家供大家參考,具體如下:

對某一個類型為varchar的字段添加前綴索引后,基于該子段的條件查詢時間基本大幅下降;但對于update操作,所耗的時間卻急劇上升,主要原因是在更新數(shù)據(jù)的同時,mysql會執(zhí)行索引的更新。

下面做了一個簡單的試驗。

(1)首先對某個億級記錄的表字段所有記錄執(zhí)行更新:

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)

統(tǒng)計用時4個小時左右。

(2)然后對某個億級記錄的表子段添加索引:

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

cursor.execute(sql)

然后再執(zhí)行同上的update語句,統(tǒng)計用時將近9個小時。

(3)由此可見字符串索引對于update等操作在性能上有極大的影響。

雖然以上小試驗并沒有多大實際意義,但是可以延伸一下,如果不對該字段添加索引,而是直接把該字段數(shù)據(jù)存儲到另一個小表b,然后在該表添加一個id字段映射到小表b,然后再執(zhí)行update操作;這樣性能又如何呢?

理論上性能應(yīng)該與記錄的重復(fù)度有關(guān),如果重復(fù)率高,小表b將會很小(unique去重);而更新所用時間為通過原表映射查詢表b字段的時間+更新表b記錄的時間,總體上應(yīng)該比更新記錄的時間+更新索引的時間要少。

不過只是估算,結(jié)果如何感興趣的朋友可以動手驗證一下。

希望本文所述對大家mysql數(shù)據(jù)庫計有所幫助。

如您對本文有疑問或者有任何想說的,請點擊進行留言回復(fù),萬千網(wǎng)友為您解惑!

總結(jié)

以上是生活随笔為你收集整理的mysql修改索引对交易影响吗_MySQL中字符串索引对update的影响分析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。