最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2018年12月06日 11:23:21   作者:Sam哥哥  
今天小編就為大家分享一篇關于一條慢SQL導致購物車服務無法使用的解決方案,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

概述

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

臨時處理

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

問題定位

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

后來仔細一看,庫存慢查詢語句,要查詢庫存的商品比平時多很多。商品個數少的話,這條語句還是非??斓模坏┒嗔司烷_始慢了。

解決方案

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

注意:

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

終極解決方案

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

補充

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

總結

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

相關文章

  • Hive常用日期格式轉換語法

    Hive常用日期格式轉換語法

    這篇文章主要為大家介紹了Hive常用日期格式轉換語法的操作示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 使用Navicat導入和導出sql語句的圖文教程

    使用Navicat導入和導出sql語句的圖文教程

    Navicat是MySQL非常好用的可視化管理工具,功能非常強大,能滿足我們日常數據庫開發(fā)的所有需求,下面這篇文章主要給大家介紹了關于使用Navicat導入和導出sql語句的相關資料,需要的朋友可以參考下
    2023-03-03
  • 本地SQL注射攻略分析曝光

    本地SQL注射攻略分析曝光

    以后會陸續(xù)給大家講一些本人的入侵經驗,一天學一點,這東西雖然我玩膩了,但是還是很想給大家入門時的一些幫助。本地SQL注射,可能很多朋友都沒有聽說過,下面biweilun為大家講解下概念及其應用
    2008-07-07
  • windows環(huán)境下python連接openGauss數據庫的全過程

    windows環(huán)境下python連接openGauss數據庫的全過程

    openGauss是一款全面友好開放,攜手伙伴共同打造的企業(yè)級開源關系型數據庫,這篇文章主要給大家介紹了關于windows環(huán)境下python連接openGauss數據庫的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-01-01
  • 淺析sql server 公共表達式的簡單應用

    淺析sql server 公共表達式的簡單應用

    本文主要對sql server 公共表達式的簡單應用進行介紹,具有一定的參考價值,有需要的可以看下
    2016-12-12
  • 最新DataGrip2020.2.x破解版激活碼的步驟詳解(支持Mac/Windows/Linux)

    最新DataGrip2020.2.x破解版激活碼的步驟詳解(支持Mac/Windows/Linux)

    這篇文章主要介紹了最新DataGrip2020.2.x破解版激活碼教程詳解(支持Mac/Windows/Linux),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 數據庫連接池Druid與Hikari對比詳解

    數據庫連接池Druid與Hikari對比詳解

    這篇文章主要為大家介紹了數據庫連接池Druid與Hikari對比詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • 解決Navicat數據庫連接成功但密碼忘記的問題

    解決Navicat數據庫連接成功但密碼忘記的問題

    這篇文章給大家介紹了Navicat數據庫連接成功,密碼忘記如何解決,文中給大家介紹了兩種解決方法,有詳細的圖文講解,需要的朋友可以參考下
    2023-08-08
  • 一次數據庫查詢超時優(yōu)化問題的實戰(zhàn)記錄

    一次數據庫查詢超時優(yōu)化問題的實戰(zhàn)記錄

    當MySQL服務器出現異常(慢),首先要考慮是否因SQL語句引起數據庫慢,下面這篇文章主要給大家介紹了一次數據庫查詢超時優(yōu)化問題的實戰(zhàn)記錄,需要的朋友可以參考下
    2021-10-10
  • 最近關于Navicat到期的完美解決辦法(親測有效)

    最近關于Navicat到期的完美解決辦法(親測有效)

    這篇文章主要介紹了最近關于Navicat到期的完美解決辦法(親測有效),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02

最新評論

康马县| 唐海县| 闽侯县| 顺义区| 葫芦岛市| 彭山县| 鄂州市| 红桥区| 吉林市| 苍梧县| 鄂托克前旗| 开鲁县| 岑巩县| 绥滨县| 祁阳县| 钦州市| 合江县| 平安县| 砀山县| 威海市| 天峨县| 诏安县| 达拉特旗| 阿尔山市| 衡阳市| 拉萨市| 长宁县| 丹阳市| 阿拉尔市| 绩溪县| 巨鹿县| 南城县| 贡嘎县| 海城市| 韩城市| 山东省| 清河县| 资阳市| 德化县| 汉川市| 安国市|