成人免费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-10-27 09:42:26

戴爾VMware分拆VMware

2023-01-30 09:16:58

MySQL雪花算法

2015-08-25 16:00:43

2020-02-06 08:58:09

程序員技術數據庫

2018-12-03 09:42:32

Java程序員阿里面試

2009-08-02 10:21:39

ASP.NET程序員面ASP.NET

2011-03-29 14:31:41

CC++

2015-02-10 10:21:22

程序員

2020-04-26 09:48:11

MySQL數據庫架構

2012-05-07 08:18:42

程序日志性能

2012-10-31 11:16:04

程序員招聘

2018-09-11 10:04:27

程序員面試數據結構

2022-04-28 08:52:40

懶加載Web

2020-04-12 22:29:50

程序員MySQL數據

2020-05-06 15:02:58

MySQL數據庫技術
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久久久国产一区二区三区四区 | 日韩视频a| 亚洲自拍偷拍欧美 | 免费久草 | 二区中文字幕 | 日韩精品久久久久久 | 国产日韩欧美一区 | 国产清纯白嫩初高生在线播放视频 | 91精品综合久久久久久五月天 | 一区二区三区免费 | 欧美久久久电影 | 日日天天 | 欧美精品一区二区免费 | 欧州一区二区 | 一级做a爰片性色毛片16美国 | 国产精品精品视频一区二区三区 | 国产第1页| 国产黄色av网站 | 亚洲免费网 | 久久精品国产一区二区电影 | 亚洲精品视频免费 | 日中文字幕在线 | 亚洲精品一区二三区不卡 | 国产精品永久久久久久久www | 国产日屁 | 欧美国产日韩精品 | 国产专区视频 | 日韩影院一区 | 日韩中文字幕在线观看视频 | 青青久草| 久久99精品视频 | 日韩中文字幕一区二区三区 | 亚洲精品一区二区 | wwww.xxxx免费| www.日韩| 91亚洲精品国偷拍自产在线观看 | 红桃成人在线 | 国产综合久久 | 亚洲三区在线观看 | 日本小电影在线 | 国产精品久久久久久久久久免费看 |