成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

華為程序員面試題:調整SQL的執行順序,對性能有沒有影響

數據庫 SQL Server
每年的3,4月份都是求職的高峰期,今天我們來分享一個經典的面試題,這個題目是來自一位粉絲最近參與的一次華為面試后臺工程師面試。

每年的3,4月份都是求職的高峰期,今天我們來分享一個經典的面試題,這個題目是來自一位粉絲最近參與的一次華為面試后臺工程師面試。 

[[320704]]

我們有一個交易系統,每當發生一次交易操作的時候,會發生下面幾個事情,增加一條交易記錄,買家的金額減少X元,賣家的金額增加X元。很顯然,為了保證數據的一致性,我們需要在事務下完成這三個操作,那么,這3條sql的執行順序,對系統的系能有沒有什么影響呢?

大家都知道,在數據庫中,如果有多個不同的任務同時對同一行數據有更新,那么就可能會出現并發問題。為了解決這個問題,Mysql有著復雜的鎖的機制,一般情況下,我們這種只更新某一行的數據通常使用的的是Mysql的行鎖。同時在所有的數據庫操作中,我們必須保證一個狀態到另外一個狀態的數據一致性,也就是事務,那么Mysql的事務跟鎖有什么關系呢?

Mysql的行鎖,是在需要的時候申請,但并不是立馬釋放,而是等到事務結束后才釋放,我們稱之為二階段協議。基于這樣的一種設定,如果我們要提高系統的整體性能,就要讓等到鎖的時間越少越好,也就是并發越高的修改,放到越后面,這樣子,就能夠在處理完當前數據庫操作之后,盡快地提交事務,并釋放鎖,交給下一個任務。

在上述例子中,增加一條交易記錄,一般都是追加的操作,不需要加鎖,而給買家的金額減X元,通常,一個買家同一時間內,都不會有并發,即使有(例如手機,APP同時下單付款等)那也是非常小的概率事件,但是對于賣家就不一定了,特別是一些爆品,賣家設置可能在1秒鐘內完成數百次甚至上千次并發。所以,我們應該把賣家金額的變更放到最后,那樣能夠很大程度地提升系統的性能。

 

責任編輯:華軒 來源: 今日頭條
相關推薦

2011-04-15 10:38:31

程序員

2012-05-25 10:15:06

Java程序員面試題

2010-05-10 17:07:54

Oracle SQL條

2020-04-08 10:18:56

MySQL數據庫SQL

2011-03-24 13:27:37

SQL

2020-02-06 08:58:09

程序員技術數據庫

2020-10-27 09:42:26

戴爾VMware分拆VMware

2018-12-03 09:42:32

Java程序員阿里面試

2009-08-02 10:21:39

ASP.NET程序員面ASP.NET

2011-03-29 14:31:41

CC++

2023-01-30 09:16:58

MySQL雪花算法

2015-08-25 16:00:43

2018-09-11 10:04:27

程序員面試數據結構

2015-02-10 10:21:22

程序員

2020-04-26 09:48:11

MySQL數據庫架構

2020-04-12 22:29:50

程序員MySQL數據

2012-10-31 11:16:04

程序員招聘

2020-05-06 15:02:58

MySQL數據庫技術

2012-05-07 08:18:42

程序日志性能

2022-04-28 08:52:40

懶加載Web
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久久久网 | 欧美激情一区二区三级高清视频 | 亚洲欧美在线视频 | 日韩欧美网 | 91精品在线观看入口 | 日韩欧美国产精品一区二区 | 午夜免费电影院 | 91精品国产乱码久久蜜臀 | 久久高清 | 久久伊人一区二区 | 久在线| heyzo在线| 精品国产一区二区三区久久 | 久草在线视频中文 | 日韩午夜在线观看 | 91网站在线播放 | 国产精品久久久久久一级毛片 | 午夜影院在线视频 | 久久久久国产精品一区二区 | 亚洲欧美日韩在线不卡 | 成人三级在线播放 | 视频在线一区二区 | 天天干天天色 | 免费xxxx大片国产在线 | 黄色免费看 | 国产成人精品一区二区三区网站观看 | 视频在线一区二区 | 日韩精品在线观看一区二区三区 | 韩国电影久久 | 欧美亚洲国产一区二区三区 | 午夜在线电影网 | 婷婷不卡 | 成人欧美一区二区三区黑人孕妇 | 国产一区二 | 国产一级免费视频 | 欧美三区在线观看 | 在线中文字幕亚洲 | 久久草在线视频 | 欧美精品一区二区在线观看 | 日本久久久影视 | 午夜男人免费视频 |