婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 一條慢SQL導致購物車服務無法使用的解決方案

一條慢SQL導致購物車服務無法使用的解決方案

熱門標簽:湖南保險智能外呼系統產品介紹 小程序智能電話機器人 泗洪正規電話機器人找哪家 南昌呼叫中心外呼系統哪家好 河北便宜電銷機器人軟件 ai電話電話機器人 簡單的智能語音電銷機器人 怎么去開發一個電銷機器人 怎么申請400熱線電話

概述

之前處理過一個購物車故障,覺得還挺經典的,在這里跟大家分享一下。這個故障直接導致前端添加購物車、獲取用戶購物車列表等操作都失敗了。購物車是入口,一旦出現問題,影響極其嚴重。

臨時處理

購物車服務所有接口,是有打印響應時間的,發現比平時慢了很多。由于情況已是十萬火急了,我只能先重啟購物車,緩沖一下,然后利用這段緩沖時間,趕緊定位問題。

問題定位

之前對購物車應用基于Spring Cloud微服務化了,已經穩定運行了幾個月了,且當時上線前也經過壓測,接口性能是沒問題的。怎么突然之間就有問題了呢?根據以往的經驗,大部分故障都是SQL語句引起的,因此首先導出數據庫的所有慢SQL(騰訊云有導出慢SQL的工具)語句,發現大部分慢查詢都是來自庫存查詢的SQL語句,有些甚至是10秒鐘才執行完。

后來仔細一看,庫存慢查詢語句,要查詢庫存的商品比平時多很多。商品個數少的話,這條語句還是非常快的,一旦多了就開始慢了。

解決方案

由于庫存計算體系的歷史原因,這條SQL是很難優化的。情況又是十萬火急的,大老板一直在問咋回事。因此臨時改代碼,將商品庫存放到Redis緩存起來。購物車服務的話,是允許庫存數據不實時的,因為后面的結算和支付會實時計算庫存,庫存不足的時候,會提示用戶的。

注意:

  • 由于購物車是入口,流量很大,而從購物車到結算頁再到支付,由于有一個操作步驟,因此結算頁和支付頁的流量是沒有購物車那么大的;
  • 部分用戶購物車上的商品數據是非常多的,但是未必都會買,用戶也可以勾選要買的商品,然后下單;
  • 部分用戶沒有清理購物車失效商品的習慣,導致購物車上的商品非常多。

終極解決方案

將庫存服務獨立出去,將商品庫存數據放置到緩存,并引入實時刷新緩存中庫存數據的機制,讓緩存中的數據盡量保證新鮮。這樣的話,查詢庫存的時候,大部分都可以從緩存中獲取,不會穿透到數據庫上。

補充

我們對接口進行壓測的時候,部分場景下,要考慮入參的個數,不能簡單的用幾個數據壓測,覺得性能OK就不管了。

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

您可能感興趣的文章:
  • MySQL根據某一個或者多個字段查找重復數據的sql語句
  • mysql自增id超大問題的排查與解決
  • MySQL查詢中LIMIT的大offset導致性能低下淺析
  • 詳解易語言操作sql server實例
  • MySQL使用全庫備份數據恢復單表數據的方法
  • MySQL用戶賬戶管理和權限管理深入講解
  • windows 環境下 MySQL 8.0.13 免安裝版配置教程
  • 如何批量測試Mybatis項目中的Sql是否正確詳解

標簽:柳州 江蘇 荊門 那曲 威海 淮安 瀘州 景德鎮

巨人網絡通訊聲明:本文標題《一條慢SQL導致購物車服務無法使用的解決方案》,本文關鍵詞  一條,慢,SQL,導致,購物車,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《一條慢SQL導致購物車服務無法使用的解決方案》相關的同類信息!
  • 本頁收集關于一條慢SQL導致購物車服務無法使用的解決方案的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 富宁县| 梁河县| 遵义市| 信宜市| 永平县| 连城县| 三原县| 綦江县| 平南县| 牡丹江市| 平陆县| 文昌市| 吉隆县| 宁明县| 台前县| 长沙县| 临高县| 平舆县| 门头沟区| 西宁市| 崇州市| 太原市| 汉源县| 彭州市| 舞钢市| 昭平县| 无棣县| 隆化县| 子长县| 济宁市| 洛浦县| 九台市| 阿拉善右旗| 岳普湖县| 苍梧县| 兴山县| 石林| 乌恰县| 定西市| 威远县| 安多县|