chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

掌握這幾種方法 你的接口查詢速度將飛速提升

馬哥Linux運(yùn)維 ? 來(lái)源:無(wú)名鼠輩 ? 作者:無(wú)名鼠輩 ? 2021-07-06 14:38 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1. MySQL查詢慢是什么體驗(yàn)?

大多數(shù)互聯(lián)網(wǎng)應(yīng)用場(chǎng)景都是讀多寫(xiě)少,業(yè)務(wù)邏輯更多分布在寫(xiě)上。對(duì)讀的要求大概就是要快。那么都有什么原因會(huì)導(dǎo)致我們完成一次出色的慢查詢呢?

1.1 索引

在數(shù)據(jù)量不是很大時(shí),大多慢查詢可以用索引解決,大多慢查詢也因?yàn)樗饕缓侠矶a(chǎn)生。

MySQL 索引基于 B+ 樹(shù),這句話相信面試都背爛了,接著就可以問(wèn)最左前綴索引、 B+ 樹(shù)和各種樹(shù)了。

說(shuō)到最左前綴,實(shí)際就是組合索引的使用規(guī)則,使用合理組合索引可以有效的提高查詢速度,為什么呢?

因?yàn)樗饕峦?。如果查詢條件包含在了組合索引中,比如存在組合索引(a,b),查詢到滿足 a 的記錄后會(huì)直接在索引內(nèi)部判斷 b 是否滿足,減少回表次數(shù)。

同時(shí),如果查詢的列恰好包含在組合索引中,即為覆蓋索引,無(wú)需回表。索引規(guī)則估計(jì)都知道,實(shí)際開(kāi)發(fā)中也會(huì)創(chuàng)建和使用。問(wèn)題可能更多的是:為什么建了索引還慢?

1.1.1 什么原因?qū)е滤饕?/p>

建了索引還慢,多半是索引失效(未使用),可用 explain 分析。索引失效常見(jiàn)原因有 :

where 中使用 != 或 《》 或 or 或表達(dá)式或函數(shù)(左側(cè))

like 語(yǔ)句 % 開(kāi)頭

字符串未加’’

索引字段區(qū)分度過(guò)低,如性別

未匹配最左前綴

(一張嘴就知道老面試題了) 為什么這些做法會(huì)導(dǎo)致失效,成熟的 MySQL 也有自己的想法。

1.1.2 這些原因?yàn)槭裁磳?dǎo)致索引失效

如果要 MySQL 給一個(gè)理由,還是那棵 B+ 樹(shù)。

函數(shù)操作

當(dāng)在 查詢 where = 左側(cè)使用表達(dá)式或函數(shù)時(shí),如字段 A 為字符串型且有索引, 有 where length(a) = 6查詢,這時(shí)傳遞一個(gè) 6 到 A 的索引樹(shù),不難想象在樹(shù)的第一層就迷路了。

隱式轉(zhuǎn)換

隱式類(lèi)型轉(zhuǎn)換和隱式字符編碼轉(zhuǎn)換也會(huì)導(dǎo)致這個(gè)問(wèn)題。

隱式類(lèi)型轉(zhuǎn)換對(duì)于 JOOQ 這種框架來(lái)說(shuō)一般倒不會(huì)出現(xiàn)。

隱式字符編碼轉(zhuǎn)換在連表查詢時(shí)倒可能出現(xiàn),即連表字段的類(lèi)型相同但字符編碼不同。

破壞了有序性

至于 Like 語(yǔ)句 % 開(kāi)頭、字符串未加 ’’ 原因基本一致,MySQL 認(rèn)為對(duì)索引字段的操作可能會(huì)破壞索引有序性就機(jī)智的優(yōu)化掉了。

不過(guò),對(duì)于如性別這種區(qū)分度過(guò)低的字段,索引失效就不是因?yàn)檫@個(gè)原因。

1.1.3 性別字段為什么不要加索引

為什么索引區(qū)分度低的字段不要加索引。盲猜效率低,效率的確低,有時(shí)甚至?xí)扔跊](méi)加。

對(duì)于非聚簇索引,是要回表的。假如有 100 條數(shù)據(jù),在 sex 字段建立索引,掃描到 51 個(gè) male,需要再回表掃描 51 行。還不如直接來(lái)一次全表掃描呢。

所以,InnoDB 引擎對(duì)于這種場(chǎng)景就會(huì)放棄使用索引,至于區(qū)分度多低多少會(huì)放棄,大致是某類(lèi)型的數(shù)據(jù)占到總的 30% 左右時(shí),就會(huì)放棄使用該字段的索引,有興趣可以試一下。

1.1.4 有什么好用且簡(jiǎn)單的索引方法

前面說(shuō)到大多慢查詢都源于索引,怎么建立并用好索引。這里有一些簡(jiǎn)單的規(guī)則。

索引下推:性別字段不適合建索引,但確實(shí)存在查詢場(chǎng)景怎么辦?如果是多條件查詢,可以建立聯(lián)合索引利用該特性優(yōu)化。

覆蓋索引:也是聯(lián)合索引,查詢需要的信息在索引里已經(jīng)包含了,就不會(huì)再回表了。

前綴索引:對(duì)于字符串,可以只在前 N 位添加索引,避免不必要的開(kāi)支。假如的確需要如關(guān)鍵字查詢,那交給更合適的如 ES 或許更好。

不要對(duì)索引字段做函數(shù)操作

對(duì)于確定的、寫(xiě)多讀少的表或者頻繁更新的字段都應(yīng)該考慮索引的維護(hù)成本。

1.1.5 如何評(píng)價(jià) MySQL 選錯(cuò)了索引

有時(shí),建立了猛一看挺正確的索引,但事情卻沒(méi)按計(jì)劃發(fā)展。就像“為啥 XXX 有索引,根據(jù)它查詢還是慢查詢”。

此刻沒(méi)準(zhǔn)要自信點(diǎn):我的代碼不可能有 BUG,肯定是 MySQL 出了問(wèn)題。MySQL 的確可能有點(diǎn)問(wèn)題。

這種情況常見(jiàn)于建了一大堆索引,查詢條件一大堆。沒(méi)使用你想讓它用的那一個(gè),而是選了個(gè)區(qū)分度低的,導(dǎo)致過(guò)多的掃描。造成的原因基本有兩個(gè):

信息統(tǒng)計(jì)不準(zhǔn)確:可以使用 analyze table x重新分析。

優(yōu)化器誤判:可以 force index強(qiáng)制指定?;蛐薷恼Z(yǔ)句引導(dǎo)優(yōu)化器,增加或刪除索引繞過(guò)。

但根據(jù)我淺薄的經(jīng)驗(yàn)來(lái)看,更可能是因?yàn)槟憬诵](méi)必要的索引導(dǎo)致的。不會(huì)真有人以為 MySQL 沒(méi)自己機(jī)靈吧?

除了上面這些索引原因外,還有下面這些不常見(jiàn)或者說(shuō)不好判斷的原因存在。

1.2 等MDL鎖

在 MySQL 5.5 版本中引入了 MDL,對(duì)一個(gè)表做 CRUD 操作時(shí),自動(dòng)加 MDL 讀鎖;對(duì)表結(jié)構(gòu)做變更時(shí),加 MDL 寫(xiě)鎖。讀寫(xiě)鎖、寫(xiě)鎖間互斥。

當(dāng)某語(yǔ)句拿 MDL 寫(xiě)鎖就會(huì)阻塞 MDL 讀鎖,可以使用show processlist命令查看處于Waiting for table metadata lock狀態(tài)的語(yǔ)句。

1.3 等 flush

flush 很快,大多是因?yàn)?flush 命令被別的語(yǔ)句堵住,它又堵住了 select 。通過(guò)show processlist命令查看時(shí)會(huì)發(fā)現(xiàn)處于Waiting for table flush狀態(tài)。

1.4 等行鎖

某事物持有寫(xiě)鎖未提交。

1.5 當(dāng)前讀

InnoDB 默認(rèn)級(jí)別是可重復(fù)讀。設(shè)想一個(gè)場(chǎng)景:事物 A 開(kāi)始事務(wù),事務(wù) B 也開(kāi)始執(zhí)行大量更新。B 率先提交, A 是當(dāng)前讀,就要依次執(zhí)行 undo log ,直到找到事務(wù) B 開(kāi)始前的值。

1.6 大表場(chǎng)景

在未二次開(kāi)發(fā)的 MYSQL 中,上億的表肯定算大表,這種情況即使在索引、查詢層面做到了較好實(shí)現(xiàn),面對(duì)頻繁聚合操作也可能會(huì)出現(xiàn) IO 或 CPU 瓶頸,即使是單純查詢,效率也會(huì)下降。

且 Innodb 每個(gè) B+ 樹(shù)節(jié)點(diǎn)存儲(chǔ)容量是 16 KB,理論上可存儲(chǔ) 2kw 行左右,這時(shí)樹(shù)高為3層。我們知道,innodb_buffer_pool 用來(lái)緩存表及索引,如果索引數(shù)據(jù)較大,緩存命中率就堪憂,同時(shí) innodb_buffer_pool 采用 LRU 算法進(jìn)行頁(yè)面淘汰,如果數(shù)據(jù)量過(guò)大,對(duì)老或非熱點(diǎn)數(shù)據(jù)的查詢可能就會(huì)把熱點(diǎn)數(shù)據(jù)給擠出去。

所以對(duì)于大表常見(jiàn)優(yōu)化即是分庫(kù)分表和讀寫(xiě)分離了。

1.6.1 分庫(kù)分表

方案

是分庫(kù)還是分表呢?這要具體分析。

如果磁盤(pán)或網(wǎng)絡(luò)有 IO 瓶頸,那就要分庫(kù)和垂直分表。

如果是 CPU 瓶頸,即查詢效率偏低,水平分表。

水平即切分?jǐn)?shù)據(jù),分散原有數(shù)據(jù)到更多的庫(kù)表中。

垂直即按照業(yè)務(wù)對(duì)庫(kù),按字段對(duì)表切分。

工具方面有 sharding-sphere、TDDL、Mycat。動(dòng)起手來(lái)需要先評(píng)估分庫(kù)、表數(shù),制定分片規(guī)則選 key,再開(kāi)發(fā)和數(shù)據(jù)遷移,還要考慮擴(kuò)容問(wèn)題。

問(wèn)題

實(shí)際運(yùn)行中,寫(xiě)問(wèn)題不大,主要問(wèn)題在于唯一 ID 生成、非 partition key 查詢、擴(kuò)容。

唯一 ID 方法很多,DB 自增、Snowflake、號(hào)段、一大波GUID算法等。

非 partition key 查詢常用映射法解決,映射表用到覆蓋索引的話還是很快的。或者可以和其他 DB 組合。

擴(kuò)容要根據(jù)分片時(shí)的策略確定,范圍分片的話就很簡(jiǎn)單,而隨機(jī)取模分片就要遷移數(shù)據(jù)了。也可以用范圍 + 取模的模式分片,先取模再范圍,可以避免一定程度的數(shù)據(jù)遷移。

當(dāng)然,如果分庫(kù)還會(huì)面臨事務(wù)一致性和跨庫(kù) join 等問(wèn)題。

1.6.2 讀寫(xiě)分離

為什么要讀寫(xiě)分離

分表針對(duì)大表解決 CPU 瓶頸,分庫(kù)解決 IO 瓶頸,二者將存儲(chǔ)壓力解決了。但查詢還不一定。

如果落到 DB 的 QPS 還是很高,且讀遠(yuǎn)大于寫(xiě),就可以考慮讀寫(xiě)分離,基于主從模式將讀的壓力分?jǐn)?,避免單機(jī)負(fù)載過(guò)高,同時(shí)也保證了高可用,實(shí)現(xiàn)了負(fù)載均衡。

問(wèn)題

主要問(wèn)題有過(guò)期讀和分配機(jī)制。

過(guò)期讀,也就是主從延時(shí)問(wèn)題,這個(gè)對(duì)于。

分配機(jī)制,是走主還是從庫(kù)??梢灾苯哟a中根據(jù)語(yǔ)句類(lèi)型切換或者使用中間件。

1.7 小結(jié)

以上列舉了 MySQL 常見(jiàn)慢查詢?cè)蚝吞幚矸椒?,介紹了應(yīng)對(duì)較大數(shù)據(jù)場(chǎng)景的常用方法。

分庫(kù)分表和讀寫(xiě)分離是針對(duì)大數(shù)據(jù)或并發(fā)場(chǎng)景的,同時(shí)也為了提高系統(tǒng)的穩(wěn)定和拓展性。但也不是所有的問(wèn)題都最適合這么解決。

2. 如何評(píng)價(jià) ElasticSearch

前文有提到對(duì)于關(guān)鍵字查詢可以使用 ES。那接著聊聊 ES 。

2.1 可以干什么

ES 是基于 Lucene 的近實(shí)時(shí)分布式搜索引擎。使用場(chǎng)景有全文搜索、NoSQL Json 文檔數(shù)據(jù)庫(kù)、監(jiān)控日志、數(shù)據(jù)采集分析等。

對(duì)非數(shù)據(jù)開(kāi)發(fā)來(lái)說(shuō),常用的應(yīng)該就是全文檢索和日志了。ES 的使用中,常和 Logstash, Kibana 結(jié)合,也成為 ELK 。先來(lái)瞧瞧日志怎么用的。

下面是我司日志系統(tǒng)某檢索操作:打開(kāi) Kibana 在 Discover 頁(yè)面輸入格式如 “xxx” 查詢。

該操作可以在 Dev Tools 的控制臺(tái)替換為:

GET yourIndex/_search { “from” : 0, “size” : 10, “query” : { “match_phrase” : { “l(fā)og” : “xxx” } } }

什么意思?Discover 中加上 “” 和 console 中的 match_phrase 都代表這是一個(gè)短語(yǔ)匹配,意味著只保留那些包含全部搜索詞項(xiàng),且位置與搜索詞項(xiàng)相同的文檔。

2.2 ES 的結(jié)構(gòu)

在 ES 7.0 之前存儲(chǔ)結(jié)構(gòu)是 Index -》 Type -》 Document,按 MySQL 對(duì)比就是 database - table - id(實(shí)際這種對(duì)比不那么合理)。7.0 之后 Type 被廢棄了,就暫把 index 當(dāng)做 table 吧。

在 Dev Tools 的 Console 可以通過(guò)以下命令查看一些基本信息。也可以替換為 crul 命令。

GET /_cat/health?v&pretty:查看集群健康狀態(tài)GET /_cat/shards?v :查看分片狀態(tài)GET yourindex/_mapping :index mapping結(jié)構(gòu)GET yourindex/_settings :index setting結(jié)構(gòu)GET /_cat/indices?v :查看當(dāng)前節(jié)點(diǎn)所有索引信息

重點(diǎn)是 mapping 和 setting ,mapping 可以理解為 MySQL 中表的結(jié)構(gòu)定義,setting 負(fù)責(zé)控制如分片數(shù)量、副本數(shù)量。

以下是截取了某日志 index 下的部分 mapping 結(jié)構(gòu),ES 對(duì)字符串類(lèi)型會(huì)默認(rèn)定義成 text ,同時(shí)為它定義一個(gè)叫做 keyword 的子字段。這兩的區(qū)別是:text 類(lèi)型會(huì)進(jìn)行分詞, keyword 類(lèi)型不會(huì)進(jìn)行分詞。

“******”: { “mappings”: { “doc”: { “properties”: { “appname”: { “type”: “text”, “fields”: { “keyword”: { “type”: “keyword”, “ignore_above”: 256 } }

2.3 ES 查詢?yōu)槭裁纯欤?/p>

分詞是什么意思?看完 ES 的索引原理你就 get 了。

ES 基于倒排索引。嘛意思?傳統(tǒng)索引一般是以文檔 ID 作索引,以內(nèi)容作為記錄。倒排索引相反,根據(jù)已有屬性值,去找到相應(yīng)的行所在的位置,也就是將單詞或內(nèi)容作為索引,將文檔 ID 作為記錄。

圖中的 Ada、Sara 被稱作 term,其實(shí)就是分詞后的詞了。如果把圖中的 Term Index 去掉,是不是有點(diǎn)像 MySQL 了?Term Dictionary 就像二級(jí)索引,但 MySQL 是保存在磁盤(pán)上的,檢索一個(gè) term 需要若干次的 random access 磁盤(pán)操作。

而 ES 在 Term Dictionary 基礎(chǔ)上多了層 Term Index ,它以 FST 形式保存在內(nèi)存中,保存著 term 的前綴,借此可以快速的定位到 Term dictionary 的本 term 的 offset 。而且 FST 形式和 Term dictionary 的 block 存儲(chǔ)方式都很節(jié)省內(nèi)存和磁盤(pán)空間。

到這就知道為啥快了,就是因?yàn)橛辛藘?nèi)存中的 Term Index , 它為 term 的索引 Term Dictionary 又做了一層索引。

不過(guò),也不是說(shuō) ES 什么查詢都比 MySQL 快。檢索大致分為兩類(lèi)。

2.3.1 分詞后檢索

ES 的索引存儲(chǔ)的就是分詞排序后的結(jié)果。比如圖中的 Ada,在 MySQL 中 %da% 就掃全表了,但對(duì) ES 來(lái)說(shuō)可以快速定位

2.3.2 精確檢索

該情況其實(shí)相差是不大的,因?yàn)?Term Index 的優(yōu)勢(shì)沒(méi)了,卻還要借此找到在 term dictionary 中的位置。也許由于 MySQL 覆蓋索引無(wú)需回表會(huì)更快一點(diǎn)。

2.4 什么時(shí)候用 ES

如前所述,對(duì)于業(yè)務(wù)中的查詢場(chǎng)景什么時(shí)候適合使用 ES ?我覺(jué)得有兩種。

2.4.1 全文檢索

在 MySQL 中字符串類(lèi)型根據(jù)關(guān)鍵字模糊查詢就是一場(chǎng)災(zāi)難,對(duì) ES 來(lái)說(shuō)卻是小菜一碟。具體場(chǎng)景,比如消息表對(duì)消息內(nèi)容的模糊查詢,即聊天記錄查詢。

但要注意,如果需要的是類(lèi)似廣大搜索引擎的關(guān)鍵字查詢而非日志的短語(yǔ)匹配查詢,就需要對(duì)中文進(jìn)行分詞處理,最廣泛使用的是 ik 。Ik 分詞器的安裝這里不再細(xì)說(shuō)。

什么意思呢?

分詞

開(kāi)頭對(duì)日志的查詢,鍵入 “我可真是個(gè)機(jī)靈鬼” 時(shí),只會(huì)得到完全匹配的信息。

而倘若去掉 “”,又會(huì)得到按照 “我”、“可”,“真”…。分詞匹配到的所有信息,這明顯會(huì)返回很多信息,也是不符合中文語(yǔ)義的。實(shí)際期望的分詞效果大概是“我”、“可”、“真是”,“機(jī)靈鬼”,之后再按照這種分詞結(jié)果去匹配查詢。

這是 ES 默認(rèn)的分詞策略對(duì)中文的支持不友善導(dǎo)致的,按照英語(yǔ)單詞字母來(lái)了,可英語(yǔ)單詞間是帶有空格的。這也是不少國(guó)外軟件中文搜索效果不 nice 的原因之一。

對(duì)于該問(wèn)題,你可以在 console 使用下方命令,測(cè)試當(dāng)前 index 的分詞效果。

POST yourindex/_analyze { “field”:“yourfield”, “text”:“我可真是個(gè)機(jī)靈鬼” }

2.4.2 組合查詢

如果數(shù)據(jù)量夠大,表字段又夠多。把所有字段信息丟到 ES 里創(chuàng)建索引是不合理的。使用 MySQL 的話那就只能按前文提到的分庫(kù)分表、讀寫(xiě)分離來(lái)了。何不組合下。

ES + MySQL

將要參與查詢的字段信息加上 id,放入 ES,做好分詞。將全量信息放入 MySQL,通過(guò) id 快速檢索。

ES + HBASE

如果要省去分庫(kù)分表什么的,或許可以拋棄 MySQL ,選擇分布式數(shù)據(jù)庫(kù),比如 HBASE , 對(duì)于這種 NOSQL 來(lái)說(shuō),存儲(chǔ)能力海量,擴(kuò)容 easy ,根據(jù) rowkey 查詢也很快。

以上思路都是經(jīng)典的索引與數(shù)據(jù)存儲(chǔ)隔離的方案了。

當(dāng)然,攤子越大越容易出事,也會(huì)面臨更多的問(wèn)題。使用 ES 作索引層,數(shù)據(jù)同步、時(shí)序性、mapping 設(shè)計(jì)、高可用等都需要考慮。

畢竟和單純做日志系統(tǒng)對(duì)比,日志可以等待,用戶不能。

2.5 小結(jié)

本節(jié)簡(jiǎn)單介紹了 ES 為啥快,和這個(gè)快能用在哪?,F(xiàn)在你可以打開(kāi) Kibana 的控制臺(tái)試一試了。

如果想在 Java 項(xiàng)目中接入的話,有 SpringBoot 加持,在 ES 環(huán)境 OK 的前提下,完全是開(kāi)箱即用,就差一個(gè)依賴了?;镜?CRUD 支持都是完全 OK 的。

3. HBASE

前面有提到 HBASE,什么是 HBASE ,鑒于篇幅這里簡(jiǎn)單說(shuō)說(shuō)。

3.1 存儲(chǔ)結(jié)構(gòu)

關(guān)系型數(shù)據(jù)庫(kù)如 MySQL 是按行來(lái)的。

Row key 是主鍵,按照字典序排序。TimeStamp 是版本號(hào)。info 和 area 都是列簇(column Family),列簇將表進(jìn)行橫向切割。name、age 叫做列,屬于某一個(gè)列簇,可進(jìn)行動(dòng)態(tài)添加。Cell 是具體的 Value 。

3.2 OLTP 和 OLAP

數(shù)據(jù)處理大致可分成兩大類(lèi):聯(lián)機(jī)事務(wù)處理OLTP(on-line transaction processing)、聯(lián)機(jī)分析處理OLAP(On-Line Analytical Processing)。

OLTP是傳統(tǒng)的關(guān)系型數(shù)據(jù)庫(kù)的主要應(yīng)用,主要是基本的、日常的事務(wù)處理。

OLAP是數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)的主要應(yīng)用,支持復(fù)雜分析,側(cè)重決策支持,提供直觀易懂的查詢結(jié)果。

面向列的適合做 OLAP,面向行的適用于聯(lián)機(jī)事務(wù)處理(OLTP)。不過(guò) HBASE 并不是 OLAP ,他沒(méi)有 transaction,實(shí)際上也是面向 CF 的。一般也沒(méi)多少人用 HBASE 做 OLAP 。

3.3 RowKey

HBASE 表設(shè)計(jì)的好不好,就看 RowKey 設(shè)計(jì)。這是因?yàn)?HBASE 只支持三種查詢方式

1、基于 Rowkey 的單行查詢 2、基于 Rowkey 的范圍掃描 3、全表掃描

可見(jiàn) HBASE 并不支持復(fù)雜查詢。

3.4 使用場(chǎng)景

HBASE 并非適用于實(shí)時(shí)快速查詢。它更適合寫(xiě)密集型場(chǎng)景,它擁用快速寫(xiě)入能力,而查詢對(duì)于單條或小面積查詢是 OK 的,當(dāng)然也只能根據(jù) rowkey。但它的性能和可靠性非常高,不存在單點(diǎn)故障。

4. 總結(jié)

個(gè)人覺(jué)得軟件開(kāi)發(fā)是循序漸進(jìn)的,技術(shù)服務(wù)于項(xiàng)目,合適比新穎復(fù)雜更重要。

如何完成一次快速的查詢?最該做的還是先找找自己的 Bug,解決了當(dāng)前問(wèn)題再創(chuàng)造新問(wèn)題。

本文列舉到的部分方案對(duì)于具體實(shí)現(xiàn)大多一筆帶過(guò),實(shí)際無(wú)論是 MySQL 的分表還是 ES 的業(yè)務(wù)融合都會(huì)面臨很多細(xì)節(jié)和困難的問(wèn)題,搞工程的總要絕知此事要躬行。

文章轉(zhuǎn)載:llc687.top/post/如何完成一次快速的查詢

編輯:jq

聲明:本文內(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)投訴
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4422

    瀏覽量

    67869
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    931

    瀏覽量

    29772
  • OLAP
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    10531
  • BUG
    BUG
    +關(guān)注

    關(guān)注

    0

    文章

    156

    瀏覽量

    16311

原文標(biāo)題:這幾種技巧,能有效幫你提升接口查詢速度

文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    VirtualLab Fusion光源的這些設(shè)置方法,掌握了嗎?

    ,本期重點(diǎn)介紹四種方法。 方法一:Sources選項(xiàng) 在頂部的功能區(qū)菜單中選擇Sources,可以看到VirtualLab Fusion提供了基礎(chǔ)光源(包含高斯光束、平面波、像散波、球面波、超高斯波
    發(fā)表于 04-02 08:19

    器件工藝協(xié)同優(yōu)化中加速版圖設(shè)計(jì)的三種方法

    器件工藝協(xié)同優(yōu)化(DTCO)流程需要生成海量版圖。本文介紹幾種借助自動(dòng)化手段,加速這一耗時(shí)流程的實(shí)現(xiàn)方法
    的頭像 發(fā)表于 03-24 09:41 ?259次閱讀
    器件工藝協(xié)同優(yōu)化中加速版圖設(shè)計(jì)的三<b class='flag-5'>種方法</b>

    知識(shí)分享|連接器焊接方法幾種?

    連接器是一種用于連接電路的元件,通常由金屬制成。下面跟小欣一起看看連接器的焊接方法有哪幾種呢?烙鐵焊接法是最常見(jiàn)的連接器焊接方法之一。使用烙鐵連接器和電路板焊接在一起,這
    的頭像 發(fā)表于 01-20 17:57 ?1469次閱讀
    知識(shí)分享|連接器焊接<b class='flag-5'>方法</b>有<b class='flag-5'>幾種</b>?

    嵌入式驅(qū)動(dòng)開(kāi)發(fā),需要掌握哪些技能?

    處理器內(nèi)核:理解處理器的內(nèi)部結(jié)構(gòu),特別是寄存器的使用,以及內(nèi)存區(qū)域的用途,如堆、堆棧、IVT、代碼等。 熟悉外設(shè)接口:比如UART、AD、SPI、定時(shí)器、PWM、實(shí)時(shí)時(shí)鐘等常見(jiàn)的外設(shè)接口。 掌握通信協(xié)議
    發(fā)表于 01-20 16:46

    提高石英晶體振蕩器相位噪聲性能的4種方法

    如果正在設(shè)計(jì)一款用于5G基站或精密雷達(dá)的振蕩器,單純靠一種方法是不夠的。需要“SC切割晶體 + 四點(diǎn)封裝”作為基礎(chǔ),配合“電子補(bǔ)償”電路來(lái)應(yīng)對(duì)動(dòng)態(tài)環(huán)境,同時(shí)輔以“超低噪聲電源”和“精密溫控”。這套組合拳,就是目前業(yè)界公認(rèn)的“
    的頭像 發(fā)表于 01-16 16:38 ?1402次閱讀
    提高石英晶體振蕩器相位噪聲性能的4<b class='flag-5'>種方法</b>

    SMA接口安裝方法詳解

    本文介紹了SMA接口的安裝準(zhǔn)備、連接步驟及注意事項(xiàng),幫助用戶掌握規(guī)范的SMA射頻接口安裝方法提升系統(tǒng)穩(wěn)定性。
    的頭像 發(fā)表于 01-14 11:04 ?890次閱讀
    SMA<b class='flag-5'>接口</b>安裝<b class='flag-5'>方法</b>詳解

    嵌入式應(yīng)掌握幾種能力

    、能力。 我覺(jué)得牢牢地掌握這些99.99999%的概率都會(huì)用得上的嵌入式軟件基礎(chǔ)對(duì)找工作才比較有利。其它一些技術(shù)可以再用的時(shí)候再去了解、學(xué)習(xí)。 特別是一些行業(yè)相關(guān)知識(shí),可以入行之后再進(jìn)行學(xué)習(xí)。如果一開(kāi)始的目標(biāo)就很明確,要在某一行、某一個(gè)方向進(jìn)行深耕,也可以提早學(xué)習(xí)相
    發(fā)表于 12-08 06:05

    愛(ài)回收平臺(tái)價(jià)格查詢API接口詳解

    ? 在愛(ài)回收平臺(tái)上,用戶經(jīng)常需要根據(jù)品牌ID和項(xiàng)目ID查詢相關(guān)商品或服務(wù)的價(jià)格。為此,平臺(tái)提供了一個(gè)簡(jiǎn)潔高效的API接口,幫助開(kāi)發(fā)者或第三方應(yīng)用實(shí)現(xiàn)自動(dòng)化價(jià)格查詢。本文詳細(xì)介紹這個(gè)A
    的頭像 發(fā)表于 11-19 14:57 ?970次閱讀
    愛(ài)回收平臺(tái)價(jià)格<b class='flag-5'>查詢</b>API<b class='flag-5'>接口</b>詳解

    有多少種方法可以進(jìn)行頻響曲線測(cè)量?

    APx500軟件提供了頻響曲線的多種測(cè)量方法,對(duì)一個(gè)音頻產(chǎn)品的頻響特性進(jìn)行測(cè)量分析。如果只用一個(gè)測(cè)量對(duì)一個(gè)音頻產(chǎn)品進(jìn)行評(píng)價(jià),那這個(gè)測(cè)量就是頻響曲線,APx500軟件提供了多種方法可以進(jìn)行頻響曲線測(cè)量
    的頭像 發(fā)表于 11-14 11:29 ?1249次閱讀
    有多少<b class='flag-5'>種方法</b>可以進(jìn)行頻響曲線測(cè)量?

    GPIO位輸出操作的幾種方法分享

    ;    //端口A的位3輸出1   PAout03 = 0;    //端口A的位3輸出0 5、綜述   以上4種方法,1、2兩種較為多見(jiàn);方法3為位帶操作,速度最快,但只對(duì)具備位帶的U有效;
    發(fā)表于 11-13 07:50

    訂單實(shí)時(shí)狀態(tài)查詢接口技術(shù)實(shí)現(xiàn)

    ? ?在電子商務(wù)系統(tǒng)中,訂單實(shí)時(shí)狀態(tài)查詢是核心功能之一。用戶需要即時(shí)獲取訂單的最新?tīng)顟B(tài)(如“已支付”、“發(fā)貨中”或“已完成”),這對(duì)用戶體驗(yàn)和業(yè)務(wù)運(yùn)營(yíng)至關(guān)重要。本文一步步介紹如何設(shè)計(jì)并實(shí)現(xiàn)一個(gè)高效
    的頭像 發(fā)表于 10-21 17:58 ?888次閱讀
    訂單實(shí)時(shí)狀態(tài)<b class='flag-5'>查詢</b><b class='flag-5'>接口</b>技術(shù)實(shí)現(xiàn)

    商品類(lèi)目屬性查詢接口技術(shù)實(shí)現(xiàn)詳解

    ? ? 一、接口核心功能 該接口用于查詢電商系統(tǒng)中商品類(lèi)目的屬性信息,支持: 按類(lèi)目ID查詢屬性集合 按屬性類(lèi)型過(guò)濾(關(guān)鍵屬性$K$、銷(xiāo)售屬性$S$、普通屬性$N$) 分頁(yè)返回屬性數(shù)據(jù)
    的頭像 發(fā)表于 10-11 15:43 ?579次閱讀
    商品類(lèi)目屬性<b class='flag-5'>查詢</b><b class='flag-5'>接口</b>技術(shù)實(shí)現(xiàn)詳解

    如何在智多晶FPGA上使用MIPI接口

    大家好呀!今天我們來(lái)聊聊一個(gè)非常實(shí)用的話題——如何在智多晶FPGA上使用MIPI接口。不管是做攝像頭圖像采集還是屏幕顯示控制,MIPI都是非常常見(jiàn)的接口標(biāo)準(zhǔn)。掌握了它,的視頻項(xiàng)目開(kāi)發(fā)
    的頭像 發(fā)表于 09-11 09:37 ?1583次閱讀

    數(shù)據(jù)庫(kù)慢查詢分析與SQL優(yōu)化實(shí)戰(zhàn)技巧

    今天,我分享我在處理數(shù)千次數(shù)據(jù)庫(kù)性能問(wèn)題中積累的實(shí)戰(zhàn)經(jīng)驗(yàn),幫助你系統(tǒng)掌握查詢分析與SQL優(yōu)化的核心技巧。無(wú)論是剛?cè)腴T(mén)的運(yùn)維新手,還是有一定經(jīng)驗(yàn)的工程師,這篇文章都將為
    的頭像 發(fā)表于 09-08 09:34 ?1271次閱讀

    產(chǎn)品詳情查詢API接口

    ,使用HTTP協(xié)議實(shí)現(xiàn)數(shù)據(jù)傳輸,支持多種應(yīng)用場(chǎng)景,包括電商平臺(tái)、移動(dòng)應(yīng)用和數(shù)據(jù)分析系統(tǒng)。本文逐步介紹產(chǎn)品詳情查詢API接口的核心概念、工作原理、實(shí)現(xiàn)方法以及實(shí)際應(yīng)用示例,幫助開(kāi)發(fā)者快
    的頭像 發(fā)表于 07-24 14:39 ?724次閱讀
    產(chǎn)品詳情<b class='flag-5'>查詢</b>API<b class='flag-5'>接口</b>