select語句和update語句的耗時比較

 問題: select語句和update語句的耗時比較

描述:

比如說,目標都是某一條記錄,對其進行查詢或更新操作,在用時上有什麼不同呢

 

解決方案1:

這種比較沒什麼意義。需要注意的一點是,select 涉及的是共享鎖, 在nolock提示下可以保證不死鎖。update涉及的是更新鎖和排他鎖,沒有鎖

提示可以用,在一定條件下會等待很長時間,甚至死鎖。

 

解決方案2:

可以自己測試一下,根據主鍵查詢的話,會從數據庫裏找到匹配該主鍵的一條數據,update的話,那就相當於先查詢,查詢完之後再update,這樣的話update比select耗時長一些。

 

解決方案3:

代碼都是切合實際的,換一種理解的角度來說,比如你是數據庫我是java程序,當我問你你多大了,你會立馬回覆我你多大了,當我說其實你的年齡錯誤了,應該是多少多少的時候,你會把你認爲的那個年齡去修改一下,在存儲一下,這個過程比第一個過程要長,所有耗時也會多

 

解決方案4:

這個問題要看對查詢的表是否帶索引,查詢條件是否用到索引字段。我們分類討論

1,沒有索引,查詢就一個select,而update是把數據select into 到一個deleted的臨時表裏。所以從執行上來說,select要快一些。

2,如果涉及到索引,那麼update本身索引就對dml的處理會有比較多的日誌產生,並且產生索引字段是否更新等,這個從根本上來說就導致更加慢。

你的這個問題,其實並沒有什麼意義的,因爲這不屬於同一個範疇裏。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章