面試高頻率問答題目

索引:

? ? ? ? 主鍵索引:表的id? ?(唯一 且? 不能為空)

? ? ? ? 唯一索引:表User 假設有account 字段 ,用戶名不重復? (唯一 可以為空)

? ? ? ? 復合索引:where() 的條件 用戶名,密碼 (無要求,無要求)

鎖:

? ? ? ? 悲觀鎖:(兩個人同時想要去上廁所 只有一個廁所 , 只能A,B中的一個先上廁所即事務, 當上廁所的人 解決了后? 剩下的人才能使用廁所)

例子:
假設商品ID為1的商品只剩下一件庫存。用戶A和用戶B幾乎同時發起購買這個商品的請求。
用戶A開始一個事務,并執行SELECT * FROM products WHERE id = 1 FOR UPDATE;這個SQL語句。這個語句鎖住了商品ID為1的記錄,其他事務不能修改這個記錄直到用戶A的事務結束。
用戶B開始一個事務,并試圖執行同樣的操作。但是,由于用戶A已經加鎖了該商品,用戶B的查詢會被阻塞,直到用戶A釋放鎖。
悲觀鎖確保了用戶A和用戶B不會同時獲得這件商品的購買資格,只有一個用戶能夠成功購買。

? ? ? ? 樂觀鎖:(在車站進站的時候,檢票機【商城或者商品 】 在檢測到用戶 刷省份證的后? 會進行 放行的行動? ? 這個時候 A用戶【大人】? B用戶 【未成年 無身份證】 同時進入 。? 在商品來講就是超賣? 原始庫存10? ?即兩個請求同時進行 在商品的數據的庫存中-1? 但是只會減1?【此時的庫存為9】? ? )

用戶A開始一個事務,并讀取了商品ID為1的記錄,此時不加鎖。記錄顯示有10件庫存。
用戶B也開始一個事務,并讀取了同樣的記錄,同樣不加鎖。記錄也顯示有10件庫存。
用戶A更新商品ID為1的記錄的stock_quantity減1,并嘗試提交事務。
用戶B也更新商品ID為1的記錄的stock_quantity減1,并嘗試提交事務。
在用戶A和用戶B都嘗試提交事務時,數據庫會檢查stock_quantity字段的值是否有沖突。由于兩個人都減少了1件庫存,現在庫存量為9件。數據庫會檢查自事務開始以來數據是否有過變更。在這個例子中,由于兩個人讀取的數據是一樣的,所以他們都認為庫存量是10件,并且都進行了減1的操作。因此,他們都會成功提交事務,并不會因為庫存量為9件而失敗。

商品超賣問題? 使用easyswoole 的消息隊列來解決。

事務:事務是數據庫中的一個重要功能,它允許一組數據庫操作要么全部成功,要么全部失敗。

rabbitmq:
RabbitMQ 是一個開源的消息隊列系統,它實現了高級消息隊列協議(AMQP)。AMQP 是一種消息傳遞中間件的標準協議,它定義了消息的傳輸、路由和隊列機制。RabbitMQ 提供了跨語言和跨平臺的客戶端庫,支持多種消息傳遞模式,包括點對點(Point-to-Point)、發布/訂閱(Publish/Subscribe)和路由(Routing)

memache:

異步和同步是消息傳遞和數據處理中的兩種常見模式,它們在不同的使用場景中有不同的優勢和應用。
? ?異步
使用場景:
高并發處理:當系統需要處理大量并發請求時,異步處理可以避免阻塞,提高系統吞吐量。
非實時性要求:對于不要求實時響應的場景,如日志收集、數據分析等,異步處理可以background執行,不影響主線程。
解耦合:異步通信可以減少系統組件之間的耦合,使得系統更加模塊化和靈活。
擴展性:異步模式便于擴展,可以通過增加消費者來處理更多的消息。
? 優點:
提高系統響應速度和吞吐量。
減少資源占用,因為多個操作可以并行處理。
增強系統的伸縮性,可以通過增加處理線程或實例來處理更多的任務。
? ?缺點:
可能會引入復雜性,如消息隊列的管理、消費者數量的調整等。
需要處理消息的順序性和一致性問題。
可能會增加系統的復雜性,如錯誤處理、重試邏輯等。
? ?同步
使用場景:
實時性要求高:如在線交易處理、實時通信等,需要立即得到響應。
操作重要:對于關鍵操作,需要確保執行完畢才能進行后續操作。
數據一致性要求高:在需要確保數據一致性的場景中,同步操作可以保證操作的順序性和一致性。
? ?優點:
保證操作的順序性和一致性。
易于理解和實現,尤其是對于簡單的單向操作。
適合需要即時反饋的場景。
? 缺點:
可能會降低系統的并發能力,因為一個操作可能會阻塞其他操作。
資源占用較大,因為操作需要依次執行。
系統的伸縮性較差,因為增加負載通常需要增加服務器資源。

新建目錄后,要執行的

php easyswoole.php server start
composer dump-autoload

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/715315.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/715315.shtml
英文地址,請注明出處:http://en.pswp.cn/news/715315.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

MySQL:函數

提醒: 設定下面的語句是在數據庫名為 db_book里執行的。 創建user_info表 注意:pwd為密碼字段,這里使用了VARCHAR(128)類型,為了后面方便對比,開發項目里一般使用char(32),SQL語句里使用MD5加密函數 USE db…

【博圖TIA-Api】通過Excel自動新建文件夾和導入FB塊

【博圖TIA-Api】通過Excel自動新建文件夾和導入FB塊 說明思路準備獲取Excel表格內文件名和FB塊名等信息新建文件夾部分篩分獲取的文件夾數據,去掉重復內容創建文件夾 導入FB塊導出FB塊的xml文件查找需要放置的文件夾導入塊 說明 續上一篇文章,這次是根據…

多線程 --- [ 線程池、線程安全、其他常見的鎖 ]

目錄 1. 線程池 模塊一:線程的封裝 模塊二:線程池的封裝 模塊三:互斥量的封裝 (RAII風格) 模塊四:任務的封裝 模塊五:日志的封裝 模塊六:時間的封裝 模塊六:主函數 模塊七&#xff1a…

備戰藍橋杯---狀態壓縮DP進階題1

我們來看一看一道比較難的問題(十分十分的巧妙): 顯然我們應該一行一行放,又豎的會對下一行產生影響,我們令橫著放為0,豎著放的上方為1. 對于下一行,前一行放1的下面為0,但是會出現…

【Redis | 第九篇】一篇文章看懂Redis持久化機制

文章目錄 9.一篇文章看懂Redis持久化機制9.1Redis的兩種持久化機制9.1.1為什么有持久化? 9.2RDB機制9.2.1介紹9.2.2觸發機制(1)save命令觸發(2)bgsave命令觸發(3)自動觸發 9.2.3執行流程9.2.4優…

C++知識點總結(22):模擬算法真題 ★★★★☆《卡牌游戲》《移動距離》

一、卡牌游戲 1. 審題 題目描述 A , B , C A,B,C A,B,C 三人在玩一個卡牌游戲,規則如下: 游戲開始時, 3 3 3 人分別會得到若干張手牌, 每張牌上寫著 a,b,c 中某一個字母。手牌的順序嚴格按照輸入順序排列&#xff0c…

前端【技術類】資源學習網站整理(那些年的小網站)

學習網站整理 值得分享的視頻博主:學習網站鏈接 百度首頁的資源收藏里的截圖(排列順序沒有任何意義,隨性而已~),可根據我標注的關鍵詞百度搜索到這些網站呀,本篇末尾會一一列出來,供大家學習呀 …

徹底搞懂回溯算法(例題詳解)

目錄 什么是回溯算法: 子集問題: 子集問題II(元素可重復但不可復選): 組合問題: 組合問題II(元素可重復但不可復選): 排列問題: 排列問題II(元素可重復但不可復選): 什么是回溯算法: 「回溯是遞歸的副產品&…

最小生成樹---Kruskal算法

最小生成樹定義: 給定一張邊帶權的無向圖 G(V,E),其中 V 表示圖中點的集合,E 表示圖中邊的集合。 由 V 中的全部 n 個頂點和 E 中 n?1 條邊構成的無向連通子圖被稱為 G 的一棵生成樹,其中邊的權值之和最小的生成樹被稱為無向圖 G…

leetcode hot100 每日溫度

在本題中,我們是通過單調棧來解決的,因為我們采用了棧的數據結構,并且,棧內存儲的元素是單調的。 本題我們考慮,將氣溫數組元素的下標存入棧中,首先初始化要把0放入,0是下標的意思。然后我們拿…

華為HCIP Datacom H12-821 卷4

1.單選題 下面哪些策略或工具不能夠應用于 OSPF: A、access-list B、prefix-list C、route- Policy D、as-path filter 正確答案: D 解析: as-path-filter命令用來創建AS路徑過濾器,OSPF屬于IGP協議,不涉及到AS號。 2.單選題…

【python基礎學習05課_for循環以及雙重for循環】

FOR循環 一、認識循環-while 1、循環條件不能超出列表長度 當i 1&#xff0c;while i < len(lst1) 時&#xff0c;i 3后, 打印print&#xff08;lst[3]&#xff09;小宋老師&#xff0c; 繼續1, i 4, 4不小于 len(lst1)&#xff0c;打破循環。 2、循環條件超出列表長度報錯…

JMeter元件和采樣器一覽

Apache JMeter是一個強大的開源負載測試工具&#xff0c;用于性能和功能測試。JMeter提供了豐富的元件和采樣器&#xff0c;使得它能夠模擬復雜的測試場景和高并發的用戶請求。以下是JMeter中常用的一些元件和采樣器的介紹和講解&#xff1a; 測試計劃元件 測試計劃&#xff0…

latex報錯I was expecting a `,‘ or a `}‘的解決辦法

解決辦法——經過檢查在ref22后面缺少一個逗號 總結 當你在使用LaTeX時遇到“I was expecting a , or a }”這樣的錯誤&#xff0c;這通常意味著LaTeX在解析你的代碼時&#xff0c;預期在某個位置看到一個逗號&#xff08;,&#xff09;或一個大括號&#xff08;}&#xff09;…

每日一題 2369

2369. 檢查數組是否存在有效劃分 題目描述&#xff1a; 給你一個下標從 0 開始的整數數組 nums &#xff0c;你必須將數組劃分為一個或多個 連續 子數組。 如果獲得的這些子數組中每個都能滿足下述條件 之一 &#xff0c;則可以稱其為數組的一種 有效 劃分&#xff1a; 子數…

PTA 1010 一元多項式求導

1010 一元多項式求導 (25分) C/C - 知乎 (zhihu.com) #include<stdio.h> int main(){ int x,n; scanf("%d %d",&x,&n); if(n0)printf("%d %d",0,0); //n0 說明是常數&#xff0c;不需要求導 else printf("%d %…

STM32 串口通信

串口發原理 在stm32每個串口內部有發送寄存器和發送移位寄存器。 當調用HAL_UART_Transmit 時&#xff0c;cpu會將發送的數據放入發送寄存器中。發送移位寄存器會將數據轉換成電平的高低&#xff0c;從TX發出。 1、輪詢模式配置、發送與接收 輪詢模式時cpu會不斷檢測發送數…

嵌入式中匯編語言的基本實現

大家好&#xff0c;今天給大家分享&#xff0c;GNU匯編的語法。 第一&#xff1a;匯編簡介 GNU 匯編語法適用于所有的架構&#xff0c;并不是 ARM 獨享的&#xff0c;GNU 匯編由一系列的語句組成&#xff0c; 每行一條語句&#xff0c;每條語句有三個可選部分&#xff0c;如下…

小白學視覺 | 詳解遺傳算法 GA(Python實現代碼)

本文來源公眾號“小白學視覺”&#xff0c;僅用于學術分享&#xff0c;侵權刪&#xff0c;干貨滿滿。 原文鏈接&#xff1a;詳解遺傳算法 GA&#xff08;Python實現代碼&#xff09; 轉自&#xff1a;機器之心 英文&#xff1a;www.analyticsvidhya.com/blog/2017/07/introduc…

在線上傳解壓PHP文件代碼,壓縮/壓縮(網站一鍵打包)支持密碼登錄

在線上傳解壓PHP文件代碼&#xff0c;壓縮/壓縮(網站一鍵打包)支持密碼登錄 資源寶分享&#xff1a;www.httple.net 如果你沒有主機控制面板這個是最好選擇&#xff0c;不需要數據庫&#xff0c;上傳當控制面板使用&#xff0c;無需安裝任何擴展&#xff0c;安全高&#xff0c;…