国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

es mysql 適用場景對比

這篇具有很好參考價值的文章主要介紹了es mysql 適用場景對比。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

es mysql 適用場景對比

問題一

全文檢索毫無疑問直接上es,那么除了這種場景,什么時候該選es?為啥mysql不行?

對枚舉字段的搜索

mysql創(chuàng)建索引的原則是對于那些區(qū)別度高字段建立索引,區(qū)別度越高的索引,在數(shù)據(jù)量大的情況下,索引效果越好。
因為mysql建立b+樹時是這樣,每創(chuàng)建一行就新建立索引字段,如果需要對枚舉類型的字段進行搜索的時候比如該字段是布爾型只有兩種值,對這種值進行搜索即使建立了索引效果仍然不好,如果一張表有千萬數(shù)據(jù),其中有
五百萬數(shù)據(jù)是該值為true,需要搜索表中為true的數(shù)據(jù),即使掃描索引,也要掃描500萬次。

而es則不同,es建立的倒排索引是索引值后面跟了一個倒排列表,也就是只需要最多掃描兩次便能找到數(shù)據(jù)。

復(fù)雜條件的搜索

當搜索的條件足夠復(fù)雜后,比如10多個條件字段的搜索,由于b+樹的特性,不可能同時對這10多個字段建立聯(lián)合索引,此時用上es就很合適。es可以將10多個條件字段求出各自的bitmap,然后求交集。

問題二

拋開問題一的兩種場景,當數(shù)據(jù)量越來越大時,應(yīng)該選用es作為存儲嗎?

es針對海量數(shù)據(jù)的存儲與搜索的好處在于,其水平擴容的便捷性。

mysql在數(shù)據(jù)量大了以后,涉及到分庫分表,而分庫分表帶來的問題的是什么?其一是分庫分表時,數(shù)據(jù)的遷移,需要考慮遷移過程中業(yè)務(wù)是否受到影響。其二在于 分庫分表后業(yè)務(wù)系統(tǒng)的改動,比如翻頁邏輯,可能需要去到每個庫或表中查出前n條數(shù)據(jù),然后進行翻頁。

而es將擴容部分的這些都做了,es存數(shù)據(jù)是天然的分片存儲,在海量數(shù)據(jù)查詢時,可以通過增加副本的機制分擔讀壓力。

那是不是在選用數(shù)據(jù)存儲時,直接選用es就好了呢,這樣以后可以不用擔心擴容問題?

當然不是,來說說選用es的問題。
es比較吃系統(tǒng)資源。
來看一組數(shù)據(jù),雖然環(huán)境有差異,可能不太準確,但能說明一定問題。
一臺4c8g的 linux 云數(shù)據(jù)庫,能支持大約上萬qps,內(nèi)存占用大概6g。
而我用一臺mac m1 的8c 16g機器去做查詢壓測,當qps達到3700時,cpu就已經(jīng)去到480% 超過了4核。
所以在產(chǎn)品并發(fā)量不高的情況下,只從數(shù)據(jù)存儲而言,選用mysql會更節(jié)約成本。

但是單機的性能的確有限,如果產(chǎn)品對數(shù)據(jù)庫的qps需要去到好幾萬,即使選用最高配的機器也是無法支撐的,這時選用多臺便宜的機器來做將數(shù)據(jù)做分布式存儲將更有優(yōu)勢。

所以我認為,當查詢量越來越大以后,選用es來做海量數(shù)據(jù)存儲,將不會擔心數(shù)據(jù)查詢問題,隨著查詢壓力的上漲,可以通過增加副本來解決,雖然mysql可以通過分庫分表解決,但是正如前面而言,分庫分表的成本是比較大且風險是高于es擴容的,es增加副本帶來的分片數(shù)據(jù)遷移工作,是由es集群自身完成,這樣對于整個架構(gòu)的擴展性來說是最高效便捷的。

感嘆一句,架構(gòu)就是這樣,有得必有失,帶來了架構(gòu)的便捷性,但是可能對于mysql分庫分表方案會更貴一點。文章來源地址http://www.zghlxwxcb.cn/news/detail-464316.html

到了這里,關(guān)于es mysql 適用場景對比的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 一文帶你了解MySQL的前世今生,架構(gòu),組成部分,特點,適用場景

    一文帶你了解MySQL的前世今生,架構(gòu),組成部分,特點,適用場景

    MySQL最初是由瑞典公司MySQL AB的Michael Widenius和David Axmark開發(fā)的一款開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。MySQL AB的初衷是創(chuàng)造一個簡單、快速、可靠的關(guān)系型數(shù)據(jù)庫系統(tǒng),以解決當時Web應(yīng)用程序的需要。他們想要創(chuàng)造一個更簡單、更強大的數(shù)據(jù)庫系統(tǒng),以取代當時主流的商業(yè)數(shù)據(jù)庫系統(tǒng)

    2024年02月04日
    瀏覽(19)
  • es_MySQL、HBase、ElasticSearch三者對比詳解

    es_MySQL、HBase、ElasticSearch三者對比詳解

    MySQL:關(guān)系型數(shù)據(jù)庫,主要面向OLTP(OLTP,也叫聯(lián)機事務(wù)處理(Online Transaction Processing)),支持事務(wù),支持二級索引,支持sql,支持主從、Group Replication(MGR 是一個新的高可用與高擴展的方案,集群中的任何節(jié)點數(shù)據(jù)都是一樣的,可以實現(xiàn)任何節(jié)點都可以寫入,實現(xiàn)了真正意義

    2024年02月02日
    瀏覽(62)
  • 【Redis】認識Redis-特點&特性&應(yīng)用場景&對比MySQL&重要文件及作用

    【Redis】認識Redis-特點&特性&應(yīng)用場景&對比MySQL&重要文件及作用

    redis里面相關(guān)的小命令 fulshall:清空redis數(shù)據(jù)庫,類似于mysql里面的drop database; 一. 內(nèi)存中存儲數(shù)據(jù)(內(nèi)存級數(shù)據(jù)庫) redis相比MySQL的優(yōu)勢:MySQL數(shù)據(jù)庫最大的問題在于訪問速度是比較慢的(很多互聯(lián)網(wǎng)產(chǎn)品中,對于性能要求是很高的)。redis作為數(shù)據(jù)庫使用,定性的角度來看是很快的

    2024年02月07日
    瀏覽(17)
  • Redis、Elasticsearch(ES)、RocketMQ和MYSql 持久化對比

    Redis、Elasticsearch(ES)、RocketMQ和MYSql 持久化對比

    在現(xiàn)代大數(shù)據(jù)和分布式系統(tǒng)中,數(shù)據(jù)持久化是一個至關(guān)重要的話題。本文將針對 Redis、Elasticsearch(ES)、?RocketMQ和MYSql 這四種常見的數(shù)據(jù)存儲和消息隊列系統(tǒng)進行持久化方面的對比分析,幫助讀者更好地了解它們各自的特點和適用場景。 ### Redis 1. **特點**: ? ?- 內(nèi)存數(shù)據(jù)庫

    2024年04月10日
    瀏覽(21)
  • MongoDB是什么、有哪些優(yōu)勢、對比mysql,es、docker安裝

    MongoDB是什么、有哪些優(yōu)勢、對比mysql,es、docker安裝

    MongoDB是面向文檔的NoSQL數(shù)據(jù)庫(是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品),用于大量數(shù)據(jù)存儲的分布式文件存儲型數(shù)據(jù)庫?;陟`活的 json文檔模型(BSON) ,非常適合敏捷式快速開發(fā)。 具有高可用,高水平擴展能力,處理海量、高并發(fā)的數(shù)據(jù)應(yīng)用時非常有優(yōu)勢 。

    2024年02月11日
    瀏覽(19)
  • mysql數(shù)據(jù)庫遞歸查詢樹形結(jié)構(gòu)(適用場景:菜單多級分類,多級關(guān)聯(lián)評論查詢),用strea流把list轉(zhuǎn)成樹的方法詳解

    mysql數(shù)據(jù)庫遞歸查詢樹形結(jié)構(gòu)(適用場景:菜單多級分類,多級關(guān)聯(lián)評論查詢),用strea流把list轉(zhuǎn)成樹的方法詳解

    層次關(guān)系: 現(xiàn)在的需求是把這個層級關(guān)系,在前端顯示出來,后端的處理方法有兩種: 1.直接把全部的數(shù)據(jù)從數(shù)據(jù)庫中拿到,然后在java代碼里面使用樹形結(jié)構(gòu)來進行解析,但是這種做法只能在數(shù)據(jù)量比較小的時候使用,然后數(shù)據(jù)量一大會造成內(nèi)存溢出 2.在mysql中創(chuàng)建一個函數(shù)

    2024年02月05日
    瀏覽(24)
  • Elasticsearch實戰(zhàn)(二十三)---ES數(shù)據(jù)建模與Mysql對比 一對多模型

    Elasticsearch實戰(zhàn)(二十三)---ES數(shù)據(jù)建模與Mysql對比 一對多模型

    我們?nèi)绾伟袽ysql的模型合理的在ES中去實現(xiàn)? 就需要你對要存儲的數(shù)據(jù)足夠的了解,及對應(yīng)用場景足夠的深入分析,才能建立一個合適的模型,便于你后期擴展 一對一 模型 一對多 模型 多對多 模型 1.一對多 模型 我們現(xiàn)在有兩個模型, 一個商品Product, 一個分類Category , 我們對比下一

    2024年02月08日
    瀏覽(25)
  • Elasticsearch實戰(zhàn)(二十二)---ES數(shù)據(jù)建模與Mysql對比 一對一模型

    我們?nèi)绾伟袽ysql的模型合理的在ES中去實現(xiàn)? 就需要你對要存儲的數(shù)據(jù)足夠的了解,及對應(yīng)用場景足夠的深入分析,才能建立一個合適的模型,便于你后期擴展 實體之間的關(guān)系: 一對一 模型 一對一(1:1):一個實體最多只能能另一個實體相關(guān)聯(lián),另一個實體如是。 例:一個只能

    2024年02月10日
    瀏覽(18)
  • MongoDB:MySQL,Redis,ES,MongoDB的應(yīng)用場景

    簡單明了說明MySQL,ES,MongoDB的各自特點,應(yīng)用場景,以及MongoDB如何使用的第一章節(jié). ????????SQL被稱為結(jié)構(gòu)化查詢語言.是傳統(tǒng)意義上的數(shù)據(jù)庫,數(shù)據(jù)之間存在很明確的關(guān)聯(lián)關(guān)系,例如主外鍵關(guān)聯(lián),這種結(jié)構(gòu)可以確保數(shù)據(jù)的完整性(數(shù)據(jù)沒有缺失并且正確).但是正因為這種嚴密的結(jié)構(gòu)

    2024年02月12日
    瀏覽(23)
  • 圖解Redis適用場景

    圖解Redis適用場景

    Redis以其速度而聞名。 string,int,list,map。Redis 最常見的用例是緩存對象以加速 Web 應(yīng)用程序。 此用例中,Redis 將頻繁請求的數(shù)據(jù)存儲在內(nèi)存。允許 Web 服務(wù)器快速返回頻繁訪問的數(shù)據(jù)。這減輕數(shù)據(jù)庫的負載并提高應(yīng)用程序RT。 規(guī)模擴張時,緩存分布在 Redis 服務(wù)器集群中。分

    2024年02月05日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包