女人荫蒂被添全过程13种图片,亚洲+欧美+在线,欧洲精品无码一区二区三区 ,在厨房拨开内裤进入毛片

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一次對(duì)API響應(yīng)時(shí)間的優(yōu)化探索

我快閉嘴 ? 來(lái)源:AI前線 ? 作者:Ankit Joinwal ? 2022-09-20 11:50 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一次對(duì) API 響應(yīng)時(shí)間的優(yōu)化探索。

在這普通的一天,我們用著普通的 API,突然發(fā)現(xiàn)響應(yīng)速度過(guò)慢的警報(bào)意外亮起。

結(jié)果顯示,我們的 API 需要約 70 秒的時(shí)間才能對(duì)常規(guī)流量下的客戶(hù)端做出響應(yīng)。開(kāi)什么玩笑……

從問(wèn)題入手

先向大家匯報(bào)一下我們的這個(gè)慢速 API 是做什么,又是怎么做的。

在這款應(yīng)用程序中,我們把書(shū)籍及其作者的目錄存儲(chǔ)在 MySQL 數(shù)據(jù)庫(kù)中。其中共包含約 6800 萬(wàn)本書(shū),每本書(shū)對(duì)應(yīng)一家出版社。

下面來(lái)看書(shū)籍和作者的表結(jié)構(gòu)。

CREATE TABLE `book` (
  `id` int NOT NULL AUTO_INCREMENT,
  `book_uuid_bin` binary(16) NOT NULL,
  `publishing_house_uuid_bin` binary(16) NOT NULL,
  `display_name` varchar(750)  NOT NULL,
  `normalized_name` varchar(750) NOT NULL,
  `description` varchar(1000) DEFAULT NULL,
  `level` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `unique_book_uuid_bin` (`book_uuid_bin`),
  KEY `book_description_idx` (`description`(768)),
  KEY `book_display_name_idx` (`display_name`),
  KEY `book_normalized_name_idx` (`normalized_name`),
  KEY `publishing_house_uuid_bin_idx` (`publishing_house_uuid_bin`),
  KEY `book_uuid_bin_idx` (`book_uuid_bin`)
)
CREATE TABLE `publishing_house` (
  `id` int NOT NULL AUTO_INCREMENT,
  `publishing_house_uuid_bin` binary(16) DEFAULT NULL,
  `display_name` varchar(750) NOT NULL,
  `normalized_name` varchar(750) NOT NULL,
  `alias_uuid_bin` binary(16) DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `unique_publishing_house_uuid_bin` (`author_uuid_bin`),
  KEY `publishing_house_normalized_name_idx` (`normalized_name`),
  KEY `publishing_house_display_name_idx` (`display_name`)
)

再說(shuō)回 API,其用例是在 UI 上提供自動(dòng)補(bǔ)全功能,方便用戶(hù)更好地查找特定出版社出版的書(shū)籍,同時(shí)保證用戶(hù)的查詢(xún)字符串同書(shū)籍名稱(chēng)或描述的前綴相匹配。

API 中使用的 MySQL 查詢(xún)?nèi)缦滤荆?/p>

select book_uuid_bin,
       display_name,
       normalized_name,
       description,      
       author_uuid_bin 
from book
where
     ((lower(display_name) like lower("%Software E%") or  lower(description) like lower("%Software E%")) and publishing_house_uuid_bin = UUID_TO_BIN("d2230981-e570-5ba4-9a3a-16028c51d54f"))order by display_name asc limit 100;

即使查詢(xún)?cè)趩伪砩暇湍芡瓿桑恍枰B接作者表,這條 SQL 查詢(xún)也需要 7 秒左右才能執(zhí)行完成。

我們?cè)?where 子句所使用的列上建立了索引。但這一實(shí)現(xiàn)還是存在問(wèn)題,包括:

1、display_name 和 description 等列屬于 VARCHAR 類(lèi)型。

2、會(huì)在 VARCHAR 類(lèi)型列上使用帶有 OR 子句的 LIKE 運(yùn)算符。

3、會(huì)使用 ORDER BY。

4、 WHERE 子句中使用的所有列,都缺少?gòu)?fù)合索引。

5、表中共包含 5800 萬(wàn)條記錄。

我們?cè)鴩L試在查詢(xún)中使用的各列上創(chuàng)建一個(gè)復(fù)合索引,但最終發(fā)現(xiàn)無(wú)濟(jì)于事。因?yàn)閷?duì)于 RDBMS 數(shù)據(jù)庫(kù)內(nèi)的大表來(lái)說(shuō),在 VARCHAR 列上搜索文本的效率就不可能太高。

我們知道 Elasticsearch 提供全文本搜索功能,所以想在自己的用例中試試看。我們一直在用 AWS 的云服務(wù),因此選擇了相應(yīng)的 AWS OpenSearch 服務(wù)。

Amazon OpenSearch 托管服務(wù)能幫助用戶(hù)輕松在 AWS 云中部署、操作和擴(kuò)展 OpenSearch 集群。Amazon OpenSearch 是 Amazon Elasticsearch 的繼任方案。

開(kāi)始行動(dòng)

我們通過(guò)腳本將表數(shù)據(jù)從 MySQL 加載到了 AWS OpenSearch 集群當(dāng)中。整個(gè)數(shù)據(jù)遷移過(guò)程大概用了幾個(gè)小時(shí)。

我們?yōu)樗饕A袅?5 個(gè)分片和 1 個(gè)副本因子。

我們還為用例編寫(xiě)了一條等效的 OpenSearch 查詢(xún),具體如下所示:

API — POST /books-catalog/_search

{
  "query": {
    "bool": {
      "must": [
        {
          "match_phrase": {
            "publisherUuid": "1f754fc0-610c-5b29-b22b-fa8140afb7be"
          }
        },
        {
          "bool": {
            "should": [
              {
                "match_phrase": {
                  "displayName": "Software E"
                }
              },
              {
                "match_phrase": {
                  "description": "Software E"
                }
              }
            ]
          }
        }
      ]
    }
  },
  "size": 100,
  "sort": [
    {
      "displayName.keyword": {
        "unmapped_type": "keyword",
        "order": "asc"
      }
    }
  ]
}
結(jié)果

我們的 API 響應(yīng)速度直接縮短至 70 毫秒以?xún)?nèi)。

API 響應(yīng)速度提高了 1000 倍!

關(guān)于 OpenSearch 全文搜索的一些細(xì)節(jié) :

在 ElasticSearch 中對(duì)文檔進(jìn)行索引(創(chuàng)建)時(shí),AWS OpenSearch 會(huì)對(duì)字符串類(lèi)型的字段使用文本分析器。

文本分析器會(huì)將字符串字段拆分為多個(gè) token,為各 token 構(gòu)建內(nèi)部索引,然后根據(jù)查詢(xún)中提供的 token 進(jìn)行匹配。

權(quán)衡取舍

為了避免重寫(xiě)整個(gè)服務(wù),同時(shí)盡快在 MySQL 切換至 AWS OpenSearch 后恢復(fù)正常生產(chǎn),我們決定只在這個(gè)特定用例中使用 OpenSearch。

而且速度提升 1000 倍的代價(jià),就是多了一套需要在 OpenSearch 當(dāng)中維護(hù)的數(shù)據(jù)副本。但由于我們的數(shù)據(jù)大多是靜態(tài)的,持續(xù)更新量非常有限,所以維護(hù)強(qiáng)度和成本都很低。

可以看到,選擇正確的數(shù)據(jù)庫(kù)引擎往往會(huì)給業(yè)務(wù)用例帶來(lái)翻天覆地的提升。

希望我們的經(jīng)歷能給大家?guī)?lái)一點(diǎn)啟發(fā),祝編程愉快!

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    1591

    瀏覽量

    63928
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    854

    瀏覽量

    27845
  • 響應(yīng)時(shí)間
    +關(guān)注

    關(guān)注

    0

    文章

    11

    瀏覽量

    7024

原文標(biāo)題:將 API 從 MySQL 遷移到 AWS OpenSearch 后,我們將響應(yīng)時(shí)間提高了 1000 倍

文章出處:【微信號(hào):AI前線,微信公眾號(hào):AI前線】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    產(chǎn)品響應(yīng)時(shí)間

    大家好,我正在做個(gè)光開(kāi)關(guān)的控制,老師要求我對(duì)產(chǎn)品的響應(yīng)時(shí)間個(gè)仿真跟優(yōu)化,基本工作電路是MCU控制升壓芯片的電壓,要求對(duì)從MCU發(fā)出升壓命令到升壓穩(wěn)定的這
    發(fā)表于 06-16 22:20

    請(qǐng)問(wèn)AD9144輸出響應(yīng)時(shí)間

    系統(tǒng)需求是個(gè)反饋測(cè)試系統(tǒng),需要根據(jù)當(dāng)前ADC采樣后計(jì)算結(jié)果分析后,決定下一次DAc輸出的波形。現(xiàn)在的問(wèn)題是,系統(tǒng)對(duì)從ADC輸入信號(hào)到DAC輸入信號(hào),給的響應(yīng)時(shí)間只有100ns,且是關(guān)鍵指標(biāo)不能放松
    發(fā)表于 08-03 06:55

    SAR ADC響應(yīng)時(shí)間實(shí)現(xiàn)迅速響應(yīng)、快速控制的方法

    如何優(yōu)化系統(tǒng)響應(yīng)時(shí)間 (tRESP) 上來(lái)。其中個(gè)比較有效的方法是在設(shè)計(jì)中的不同“非實(shí)時(shí)”塊上,即ADC,主機(jī)控制器和DAC,安排系統(tǒng)響應(yīng)時(shí)間。ADC的
    發(fā)表于 09-12 11:46

    什么是響應(yīng)時(shí)間

    什么是響應(yīng)時(shí)間      響應(yīng)時(shí)間是指液晶顯示器各像素點(diǎn)對(duì)輸入信號(hào)反應(yīng)的速度,即像素由暗轉(zhuǎn)亮或由亮轉(zhuǎn)暗所需要的時(shí)間(其原理是在液晶分子內(nèi)
    發(fā)表于 05-24 21:53 ?5744次閱讀

    什么是液晶電視的響應(yīng)時(shí)間

    什么是液晶電視的響應(yīng)時(shí)間   響應(yīng)時(shí)間是液晶電視各像素點(diǎn)對(duì)輸入信號(hào)反應(yīng)的速度,即像素由暗轉(zhuǎn)亮或由亮轉(zhuǎn)暗所需要的時(shí)間(其原理是在液晶分子內(nèi)
    發(fā)表于 03-27 13:29 ?4658次閱讀

    光敏電阻響應(yīng)時(shí)間研究

    用半定量方法研究了光敏電阻的響應(yīng)時(shí)間與照射光的照度和波長(zhǎng)的關(guān)系,并給出了光敏電阻的上升時(shí)間和下降時(shí)間的測(cè)量方法.該實(shí)驗(yàn)可作為本科生的探索性實(shí)驗(yàn)。有助于培養(yǎng)學(xué)生的綜
    發(fā)表于 09-20 17:00 ?90次下載
    光敏電阻<b class='flag-5'>響應(yīng)時(shí)間</b>研究

    測(cè)量光耦響應(yīng)時(shí)間的簡(jiǎn)單電路

    測(cè)量光耦響應(yīng)時(shí)間的簡(jiǎn)單電路
    發(fā)表于 06-04 11:53 ?2121次閱讀
    測(cè)量光耦<b class='flag-5'>響應(yīng)時(shí)間</b>的簡(jiǎn)單電路

    SAR ADC 響應(yīng)時(shí)間:迅速響應(yīng)、快速控制

    快速響應(yīng)時(shí)間來(lái)優(yōu)化設(shè)計(jì)。在這個(gè)系列博文中,我們將討論SAR DAC響應(yīng)時(shí)間和幾種實(shí)現(xiàn)設(shè)計(jì)最佳效果的方法。 當(dāng)我們考慮模擬電子元器件時(shí): 系統(tǒng)的高精度要求轉(zhuǎn)化為你的模擬塊(放大器、基準(zhǔn)、傳感器等)和混合信號(hào)塊(ADC,DAC等)所
    發(fā)表于 04-18 02:17 ?1288次閱讀
    SAR ADC <b class='flag-5'>響應(yīng)時(shí)間</b>:迅速<b class='flag-5'>響應(yīng)</b>、快速控制

    什么是單片機(jī)的中斷響應(yīng)時(shí)間

    中斷響應(yīng)時(shí)間:從外部中斷請(qǐng)求有效(外部中斷請(qǐng)求標(biāo)志置1)到轉(zhuǎn)向中斷入口地址所需要的響應(yīng)時(shí)間。每個(gè)機(jī)器周期的S5P2時(shí)刻,INTx引腳的電平被鎖存到內(nèi)部寄存器中,待下個(gè)周期查詢(xún)。
    發(fā)表于 12-19 15:57 ?1.1w次閱讀
    什么是單片機(jī)的中斷<b class='flag-5'>響應(yīng)時(shí)間</b>

    面板響應(yīng)時(shí)間有什么影響

    響應(yīng)時(shí)間個(gè)計(jì)算機(jī),顯示器成像等多個(gè)領(lǐng)域的概念,在網(wǎng)絡(luò)上,指從空載到負(fù)載發(fā)生個(gè)步進(jìn)值的變化時(shí),傳感器的響應(yīng)時(shí)間
    的頭像 發(fā)表于 01-14 14:56 ?4308次閱讀

    PLC的I/O響應(yīng)時(shí)間

    響應(yīng)時(shí)間是指 plc 接收到個(gè)輸入信號(hào)以后,到輸出控制信號(hào)所需的時(shí)間。當(dāng) CPU 接收到對(duì)應(yīng)于輸入刷新周期的輸入信號(hào)時(shí),用于響應(yīng)時(shí)間取決
    的頭像 發(fā)表于 10-05 09:23 ?5836次閱讀
    PLC的I/O<b class='flag-5'>響應(yīng)時(shí)間</b>

    進(jìn)程響應(yīng)時(shí)間是指什么

    進(jìn)程響應(yīng)時(shí)間是指從發(fā)出請(qǐng)求到收到響應(yīng)時(shí)間間隔,是衡量系統(tǒng)性能和用戶(hù)體驗(yàn)的重要指標(biāo)之。在計(jì)算機(jī)系統(tǒng)中,進(jìn)程是指個(gè)正在運(yùn)行的程序?qū)嵗.?dāng)用
    的頭像 發(fā)表于 11-17 11:31 ?1487次閱讀

    影響VCO響應(yīng)時(shí)間的因素

    VCO(Voltage-Controlled Oscillator,壓控振蕩器)的響應(yīng)時(shí)間個(gè)關(guān)鍵的性能指標(biāo),它反映了VCO在接收到控制電壓變化后,其輸出頻率達(dá)到穩(wěn)定狀態(tài)所需的時(shí)間。然而,要詳細(xì)
    的頭像 發(fā)表于 08-20 16:07 ?1019次閱讀

    驅(qū)動(dòng)鈦絲(SMA)的可靠性設(shè)計(jì)(3)響應(yīng)時(shí)間的設(shè)計(jì)

    響應(yīng)時(shí)間的設(shè)計(jì) 前章我們提到,有很多產(chǎn)品,是需要我們做些機(jī)械結(jié)構(gòu)設(shè)計(jì)去優(yōu)化和匹配產(chǎn)品的需求。什么情況下需要做結(jié)構(gòu)設(shè)計(jì)?如何做結(jié)構(gòu)設(shè)計(jì)?包括結(jié)構(gòu)設(shè)計(jì)對(duì)鈦絲的驅(qū)動(dòng)的可靠性有哪些影響?本
    的頭像 發(fā)表于 11-27 11:58 ?507次閱讀
    驅(qū)動(dòng)鈦絲(SMA)的可靠性設(shè)計(jì)(3)<b class='flag-5'>響應(yīng)時(shí)間</b>的設(shè)計(jì)

    光譜傳感器的響應(yīng)時(shí)間

    光譜傳感器的響應(yīng)時(shí)間是指?jìng)鞲衅鲝慕邮盏焦庾V信號(hào)到產(chǎn)生穩(wěn)定輸出所需的時(shí)間。這個(gè)參數(shù)對(duì)于光譜傳感器的性能和應(yīng)用至關(guān)重要。以下是對(duì)光譜傳感器響應(yīng)時(shí)間的詳細(xì)分析:
    的頭像 發(fā)表于 01-27 15:36 ?620次閱讀
    主站蜘蛛池模板: 潞西市| 稻城县| 榕江县| 饶平县| 万荣县| 南京市| 周至县| 乌兰察布市| 新闻| 鄂尔多斯市| 海门市| 天长市| 祁门县| 包头市| 南江县| 惠来县| 九寨沟县| 桐庐县| 沂南县| 蒲城县| 朔州市| 富裕县| 绥化市| 神农架林区| 江源县| 福建省| 应城市| 长岛县| 正定县| 石屏县| SHOW| 忻州市| 东莞市| 昌邑市| 泸定县| 汪清县| 克拉玛依市| 贵溪市| 安远县| 营口市| 平度市|