自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

華為程序員面試題:調(diào)整SQL的執(zhí)行順序,對(duì)性能有沒(méi)有影響

數(shù)據(jù)庫(kù) SQL Server
每年的3,4月份都是求職的高峰期,今天我們來(lái)分享一個(gè)經(jīng)典的面試題,這個(gè)題目是來(lái)自一位粉絲最近參與的一次華為面試后臺(tái)工程師面試。

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

[[320704]]

我們有一個(gè)交易系統(tǒng),每當(dāng)發(fā)生一次交易操作的時(shí)候,會(huì)發(fā)生下面幾個(gè)事情,增加一條交易記錄,買家的金額減少X元,賣家的金額增加X(jué)元。很顯然,為了保證數(shù)據(jù)的一致性,我們需要在事務(wù)下完成這三個(gè)操作,那么,這3條sql的執(zhí)行順序,對(duì)系統(tǒng)的系能有沒(méi)有什么影響呢?

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

Mysql的行鎖,是在需要的時(shí)候申請(qǐng),但并不是立馬釋放,而是等到事務(wù)結(jié)束后才釋放,我們稱之為二階段協(xié)議?;谶@樣的一種設(shè)定,如果我們要提高系統(tǒng)的整體性能,就要讓等到鎖的時(shí)間越少越好,也就是并發(fā)越高的修改,放到越后面,這樣子,就能夠在處理完當(dāng)前數(shù)據(jù)庫(kù)操作之后,盡快地提交事務(wù),并釋放鎖,交給下一個(gè)任務(wù)。

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

 

責(zé)任編輯:華軒 來(lái)源: 今日頭條
相關(guān)推薦

2011-04-15 10:38:31

程序員

2012-05-25 10:15:06

Java程序員面試題

2010-05-10 17:07:54

Oracle SQL條

2011-03-24 13:27:37

SQL

2020-04-08 10:18:56

MySQL數(shù)據(jù)庫(kù)SQL

2020-10-27 09:42:26

戴爾VMware分拆VMware

2020-02-06 08:58:09

程序員技術(shù)數(shù)據(jù)庫(kù)

2023-01-30 09:16:58

MySQL雪花算法

2018-12-03 09:42:32

Java程序員阿里面試

2015-08-25 16:00:43

2020-04-26 09:48:11

MySQL數(shù)據(jù)庫(kù)架構(gòu)

2011-03-29 14:31:41

CC++

2009-08-02 10:21:39

ASP.NET程序員面ASP.NET

2015-02-10 10:21:22

程序員

2018-09-11 10:04:27

程序員面試數(shù)據(jù)結(jié)構(gòu)

2020-04-12 22:29:50

程序員MySQL數(shù)據(jù)

2020-05-06 15:02:58

MySQL數(shù)據(jù)庫(kù)技術(shù)

2012-10-31 11:16:04

程序員招聘

2012-05-07 08:18:42

程序日志性能

2022-04-28 08:52:40

懶加載Web
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)