主頁 > 資料庫 > 1024程式員節 | 我在自研資料庫,我為技術代言

1024程式員節 | 我在自研資料庫,我為技術代言

2020-10-31 01:35:22 資料庫

image.png

隨著互聯網的發展,“程式員”這個名字逐漸為人們所關注到,其所代表的標簽印象也變得更加多樣 —— 改變世界?Debug專業戶?格子衫代言人?……事實上,有那么一群人,比如騰訊資料庫工程師,他們將自己定義為“數字的工匠”,初心如一地用代碼創造產品、解決問題,為國產資料庫發展助力,而對于我們來說,有他們的努力,數字世界也不再是虛無縹緲的資料,而像冰山盤亙在海面一樣,深邃而沉穩,

在“1024”程式員節到來之際,我們推出本期特別分享,邀請騰訊6位資料庫技術工程師,講述了他們對代碼技術的理解,

image.png

“我是騰訊云資料庫技術負責人雷海林,2007年大學畢業加入騰訊,負責過計費、支付底層各大模塊的開發,包括分布式Cache系統‘Hold(厚德)’等,以及騰訊金融級安全可控分布式資料庫研發,我在騰訊,為資料庫國產化發展助力,”

image.png

“我是騰訊云資料庫高級工程師賴錚,2018年加入騰訊,曾經在MySQL資料庫官方團隊作業,現在負責騰訊云資料庫內核開發,我在騰訊,為資料庫國產化發展助力,”

image.png

“我是騰訊IEG資料庫專家工程師陳福榮,2011年加入騰訊,曾經做過Tendb Cluster和Tendis專案,現在騰訊IEGCROS團隊負責騰訊游戲云存盤開發,我在騰訊,為資料庫國產化發展助力,”

image.png

“我是騰訊云資料庫高級工程師陳再妮,2019年加入騰訊,從事資料多活、Oracle兼容、讀寫分離等專案開發,我在騰訊,為資料庫國產化發展助力,”

image.png

“我是騰訊云資料庫工程師張風嘯,2019年加入騰訊,從事多源同步和資料校驗模塊的設計與開發,我在騰訊,為國產資料庫發展助力,”

image.png

“我是騰訊云資料庫高級工程師陳松威,2018年加入騰訊,從事云資料庫內核研發,開發過的功能包括企業級列加密函式、資料恢復工具、異步審計,資料預熱等,我在騰訊,為國產資料庫發展助力,”

你為什么從事資料庫底層研發

雷海林:

個人興趣更喜歡與計算機打交道,通過code去解決問題;而一般來說,越是偏低層的系統軟體,技術挑戰也越大,而資料庫領域在性能優化、高可用、擴展性、資料一致性等方面一直有無限的可能,技術上可以做各種嘗試、各種創新探索,同時驅動更廣泛的技術生態創新突破,

image.png

賴錚:

資料庫系統作為基礎的系統軟體,是很多應用系統的核心,它涉及到的知識領域非常廣泛,包括作業系統、事務系統、并發處理等等,可以說是軟體領域的明珠、人類智慧的結晶,能從事這個領域的研發作業,會有一種使命感,同時,如果做出了一點點成績,也會給自己帶來巨大的滿足感,尤其是在資料爆炸的時代,對于資料的存盤和管理技術越來越成為計算機領域的關鍵性技術,能在這樣快速變化的大潮中奮發搏擊,也是一件幸事,

陳福榮:

應該說比較幸運,研究生階段就是從事資料庫方面的學習和研究,第一份作業是跟著導師做國產資料庫,積累了一些經驗,后來加入了騰訊游戲的DBA團隊,所以,從學生到現在超過10年了,一直都是做資料庫相關的開發作業,也很慶幸一直做著自己比較喜歡的作業,

陳再妮:

最早在業務系統的后臺開發時,底層資料存盤使用到了資料庫,發現很多大段的業務邏輯代碼,一條SQL就可以搞定,這使得我對資料庫產生了濃厚的興趣,開始進入這個領域,進入后發現資料庫底層確實是復雜的東西,做起來特別有挑戰,但一旦完成后也會讓我產生更多的成就感,這也驅動了我一直從事下去,

張風嘯:

才開始接觸技術是寫Java Web的,參與了校內小專案的開發,做了有一年多,在開始覺得只是用框架,不夠深入有點無聊,后來通過社區接觸了很多之前沒接觸的新技術,對一些基礎組件的底層實作產生了比較濃厚的興趣,后來進入騰訊實習期間,調研了解了一些新的DB技術,從而對資料庫的興趣更加濃烈,后來面試的時候也和面試官表達了想去做資料庫的意愿,沒想到真的遇上了,

陳松威:

資料庫是三大系統軟體之一,涉及到的模塊眾多,是非常有深度、值得探索的領域,能從事資料庫底層研發,是一件非常榮幸的事情,特別是在我們團隊,有多位在資料庫內核領域深耕多年的技術大牛,他們總能知無不言言無不盡地幫助我,使我快速成長,這我更加堅信從事資料庫內核研發的選擇是正確的,

作為程式員,你做過覺得罪有成就感的三個業務或者事情是什么?

雷海林:

我覺得最有成就感的事情是技術上比較追求完美地做出一些組件或者產品,解決難以解決的BUG,或者性能上的每一次超越和升級:

a) 比如封裝zkapi,能讓大家用起來更方便,屏蔽很難處理的一些細節問題,實作一個基本無鎖化的記憶體池組件,解決偶發的毛刺問題等等;
b) 比如花一個星期以上的時間,構造數十億的請求去解決某個難以重現的資料一致性BUG;
c) 負責騰訊國產分布式資料庫的研發,支撐各行業對分布式資料庫的需求,

賴錚:

a)在InnoDB存盤引擎中實作了透明加密功能;
b)在InnoDB存盤引擎中實作了基于R樹的空間索引;
c)通過優化熱點更新大幅度提升了秒殺場景下的系統性能,

image.png

陳福榮:

作為程式員,最有成就感的事情應該就是做的一些核心功能或者優化,能夠真正在業務上落地并且發揮作用,舉三個例子:

第一個是在資料庫上增加了在線加欄位的能力,這應該是我個人加入騰訊做的第一個比較大的功能點,需要對Innodb底層存盤格式進行優化,當時做的時候技術上挑戰很大,但完成后,它對業務減少停服時間的收益也特別明顯,當第一個Demo做出來并且在第一個業務(當年應該是斗戰神)上線時,還是很有成就感的,

第二個是研發互娛的分布式解決方案TenDBCluster,解決了原來資料庫無法水平擴展的問題,順應了手游時代的爆發,大約在2015年,第一款業務從單機資料庫切換到TenDB Cluster時,我跟另外一個同事一直堅守了凌晨兩三點,最終業務順利切換,雖然比較晚了,但心里還是感到非常興奮,

第三個是TendisX冷熱混合存盤在騰訊云商業化,通過騰訊云對外開放,

image.png

陳再妮:

a)資料庫多中心多活模塊研發:保障企業資料庫的高可用,為客戶業務系統實作7×24小時不間斷高效平穩運行發揮了重要作用;
b)Oracle兼容特性研發,助力Oracle兼容版本的資料庫產品功能順利上線,極大提升了騰訊云資料庫助力行業技術國產化的優勢;
c)完成騰訊自研分布式HTAP國產資料庫開源,

張風嘯:

a)一個是實作了資料庫遷移中異構資料遷移和同步的資料校驗模塊,解決了據遷移中的一致性校驗問題,
b)進一步完善了資料庫異構多源同步的功能,提升了產品的易用性,
c)最關鍵的是大學期間教女孩子寫計算機的大作業,最后變成了女朋友,

陳松威:

a)原創了業界唯一的資料恢復工具,能夠從損壞的表檔案中恢復用戶資料,保障資料安全,
b)設計并實作了異步審計,將審計性能影響降至3%,在業界遙遙領先,
c)原創了資料庫主從切換前,備機的資料預熱功能,

你認為對程式員來說最重要的非技術因素是什么?

雷海林:

尋根問底的精神,比如程式出現了某個罕見的例外現象,那也一定是在代碼層面出現了問題,我們要盡全力找到并解決它,不能因為它非常偶發而忽視,

賴錚:

保持好奇,

陳福榮:

第一,需要刨根問底的精神,對于一個技術問題,如果這個問題是自己的主要作業,或者是某個待解決問題的關鍵路徑,必須把這些問題完全搞清楚,不能似懂非懂,對于底層技術而言,對更多底層問題的鉆研,會發現這些問題的解決思路其實是類似的,漸漸會建立自己的方法論,因此不要輕易放過一個問題或者bug,

第二,對最終結果負責,不能僅僅滿足于功能開發完成,這點特別重要,一個任務,一定不僅僅是希望這個功能跑起來,更多是希望真正能夠解決業務問題和痛點,如果開發人員僅僅把自己定位成代碼撰寫者,是不夠的,

第三,可以有一點點代碼潔癖,這樣會讓自己寫出風格更好的代碼,

陳再妮:

做事嚴謹,就像計算機的世界非0即1;態度認真負責,值得信賴,

image.png

張風嘯:

我覺得是對感興趣的事情的喜愛和追求,技術和其他方面都一樣,一定是有興趣、有追求,才能做得更好,

陳松威:

我覺得是,要有一種“空杯心態”,

厲害的程式員都有哪些特別的能力 ?

雷海林:

a)學習能力,個人很渺小,要不斷地虛心學習,看書、看文章論文、多掌握原理性質的東西;
b)熱愛閱讀開源社區好的代碼,通過學習別人的代碼提升自己的編程能力;
c)對自己有信心,遇事不妥協,高標準要求自己,喜歡去解決作業領域各種技術上的挑戰,

陳福榮:

第一是學習能力,開發這個領域新技術是層出不窮,如果不具備很好的學習能力,很容易會出現一些力不從心的狀態,當然,如果有比較好的計算機基礎理論的背景,學習起來是可以觸類旁通的,

第二個是抗壓能力,線上bug是不可避免的,如果出現線上故障壓力一定是很大的,但此時最重要的是優先恢復業務,因此,一定要頂住壓力,保持思路清晰,尋找最高效的解決辦法,

第三個是心態調整能力,厲害的程式員都會表現出干勁十足,精神飽滿,除了本身對作業的熱愛外,還需要自己心態上的調整,以及適當的泄壓方式包括鍛煉身體等,

陳再妮:

a)極客精神:對未知技術保持好奇之心,并持續學習;
b)看待問題可以通過表象直到問題根源;
c)有趣的靈魂:代碼注釋寫的讓人如沐晨風,比如讓模塊運行起來:

/* Do the modulemagic dance */
PG_MODULE_MAGIC;

賴錚:

思維縝密,邏輯性極強,

張風嘯:

專注, 細致,心思縝密,思考全面;以及對問題刨根究底的態度,深入鉆研,

陳松威:

邏輯性強、創造力強、思維嚴謹、良好的溝通能力,

對資料庫未來發展趨勢,有什么看法或建議

雷海林:

資料庫必定還是會往分布式資料庫的方向繼續發展,整體來看,則將在資料庫彈性擴展、跨地域進行分布調度、6個9(99.9999%)以上的可用性、HTAP融合、SQL智能診斷與優化、極致的性能等方向持續發展——最后回歸資料庫的本質:當某個業務獲取到一個資料庫的域名地址,資料庫就是一個黑盒子以極致的性能提供SQL讀寫服務,不用再關心容量、SQL調優、容災等細節,

賴錚:

資料庫未來會操作面向云計算的方向發展,云原生資料庫將會成為主流,彈性擴展、TP+AP、海量資料等特點將會充分顯示出云原生資料庫的優勢,

陳福榮:

1)分布式,未來的資料庫一定主要是使用分布式的架構,無論是share nothing還是share disk,都能較好解決資料庫的容量問題,便于彈性擴縮容;

2)軟硬結合,未來資料庫一定會結合軟硬一體化的設計理念,充分發揮硬體的性能,滿足企業級用戶的需求,如更快的回應時間、更高的安全性、更大的容量、更低的成本等;

3)智能化,未來的資料庫會結合資料庫的運行狀態以及AI的能力,提升資料庫管理的智能化水平,包括故障診斷、故障預測、自動擴縮容、更優的執行計劃等,

陳再妮:

未來資料庫一定會依據新型硬體做架構層面的改良,舉個例子:傳統資料庫是基于存盤不可靠以及存盤性能差設計的(WAL、REDO、UNDO、DO、CHECKPOINT),是基于當前CPU運算速度設計的(32位事務ID,64位事務ID),但是好多理論隨著硬體的快速發展會被徹底顛覆:比如基于云原生資料庫(接近于基于存盤可靠的設計),云原生記憶體資料庫(資料全部存盤于記憶體,主要解決網路問題 RDMA、DPDK、SPDK 等)、量子資料庫等,這些基于新硬體新理論才是資料庫的未來,

image.png

張風嘯:

一方面是,當前業界關于資料庫的架構、存盤結構等很多方面的研究已經很多且比較完善了,而存盤介質等硬體方面的變化,可能給會給存盤的架構設計帶來很大的變化,所以我們可以多關注新型存盤產品的出現帶來的一些變化,

另一方面是我很贊同的觀點:性能不是唯一的肌肉,穩定性、產品化、運營體系等方面,才是當前國產資料庫面對最突出的幾個挑戰,資料庫要發展好,發展優秀的生態和做好產品化是至關重要的,

陳松威:

資料庫未來趨勢是云原生,在未來的產業互聯網中,資料庫的彈性擴展能力、自我診斷快速運維能力、個性化服務能力將非常重要,

image.png

推薦一段值得稱道或簡短代碼片段?

雷海林:

Linux內核的list.h組件,實作簡單,通用性好:

/*
 * Insert a new entry between two known consecutive entries.
 *
 * This is only for internal list manipulation where we know
 * the prev/next entries already!
 */
#ifndef CONFIG_DEBUG_LIST
static inline void __list_add(struct list_head *new,
struct list_head *prev,
struct list_head *next)
{
  next->prev = new;
new->next = next;
new->prev = prev;
  prev->next = new;
}
#else
extern void __list_add(struct list_head *new,
struct list_head *prev,
struct list_head *next);
#endif

/**
 * list_add - add a new entry
 * @new: new entry to be added
 * @head: list head to add it after
 *
 * Insert a new entry after the specified head.
 * This is good for implementing stacks.
 */
static inline void list_add(struct list_head *new, struct list_head *head)
{
  __list_add(new, head, head->next);
}

賴錚:

存盤引擎里位元組序轉換函式代碼,簡單明了,非常精巧,

image.png

陳再妮:

/*
 * TransactionIdPrecedes --- is id1 logically < id2?
 */
bool
TransactionIdPrecedes(TransactionId id1, TransactionId id2)
{
/*
   * If either ID is a permanent XID then we can just do unsigned
   * comparison.  If both are normal, do a modulo-2^32 comparison.
   */
int32    diff;

if (!TransactionIdIsNormal(id1) || !TransactionIdIsNormal(id2))
return (id1 < id2);

  diff = (int32) (id1 - id2);
return (diff < 0);
}

這段代碼乍一看平平無奇,但要結合PG事務環來看,這個演算法設計得很巧妙的,而且剛好在PG這種事務環下才是有效的,它在半個事務環的限制下,巧妙的運行 2 的補碼,實作無符號事務ID的比較:

image.png

張風嘯:

世界上最簡單的資料庫可以只用2個bash函式實作,這是在書籍《DesigningData-IntensiveApplication》中截取的,也非常推薦大家去閱讀,

#!/bin/bash
db_set () {
echo"$1,$2" >> database
}

db_get () {
grep"^$1," database | sed -e "s/^$1,//" | tail -n 1
}

陳松威:

想推薦一個存盤引擎里實作中的一個頁面校驗函式:btr_validate_level,這個函式將所有可能的校驗條件都一一列舉,包括頁面在區中的狀態校驗、頁面本身校驗、相鄰頁面指標校驗、父子節點指標校驗、父子節點相鄰節點指標環校驗等等,代碼非常嚴謹,對我啟發很大,

image.png

陳福榮:

簡短代碼片段意義不是很大,一個片段不管有多好,也不是一個可服務的載體,相對于代碼片段,一個完整系統的設計與實作顯得更重要,如果是C語言,推薦redis;如果是C++,推薦LevelDB或RocksDB,如果把成熟的開源軟體代碼認真看一遍,對個人的提升還是很大的,

本文由博客一文多發平臺 OpenWrite 發布!

轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/196103.html

標籤:其他

上一篇:CPU占用又爆了?MySQL到底在干什么

下一篇:騰訊云資料庫新生代產品獲國家級認證

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • GPU虛擬機創建時間深度優化

    **?桔妹導讀:**GPU虛擬機實體創建速度慢是公有云面臨的普遍問題,由于通常情況下創建虛擬機屬于低頻操作而未引起業界的重視,實際生產中還是存在對GPU實體創建時間有苛刻要求的業務場景。本文將介紹滴滴云在解決該問題時的思路、方法、并展示最終的優化成果。 從公有云服務商那里購買過虛擬主機的資深用戶,一 ......

    uj5u.com 2020-09-10 06:09:13 more
  • 可編程網卡芯片在滴滴云網路的應用實踐

    **?桔妹導讀:**隨著云規模不斷擴大以及業務層面對延遲、帶寬的要求越來越高,采用DPDK 加速網路報文處理的方式在橫向縱向擴展都出現了局限性。可編程芯片成為業界熱點。本文主要講述了可編程網卡芯片在滴滴云網路中的應用實踐,遇到的問題、帶來的收益以及開源社區貢獻。 #1. 資料中心面臨的問題 隨著滴滴 ......

    uj5u.com 2020-09-10 06:10:21 more
  • 滴滴資料通道服務演進之路

    **?桔妹導讀:**滴滴資料通道引擎承載著全公司的資料同步,為下游實時和離線場景提供了必不可少的源資料。隨著任務量的不斷增加,資料通道的整體架構也隨之發生改變。本文介紹了滴滴資料通道的發展歷程,遇到的問題以及今后的規劃。 #1. 背景 資料,對于任何一家互聯網公司來說都是非常重要的資產,公司的大資料 ......

    uj5u.com 2020-09-10 06:11:05 more
  • 滴滴AI Labs斬獲國際機器翻譯大賽中譯英方向世界第三

    **桔妹導讀:**深耕人工智能領域,致力于探索AI讓出行更美好的滴滴AI Labs再次斬獲國際大獎,這次獲獎的專案是什么呢?一起來看看詳細報道吧! 近日,由國際計算語言學協會ACL(The Association for Computational Linguistics)舉辦的世界最具影響力的機器 ......

    uj5u.com 2020-09-10 06:11:29 more
  • MPP (Massively Parallel Processing)大規模并行處理

    1、什么是mpp? MPP (Massively Parallel Processing),即大規模并行處理,在資料庫非共享集群中,每個節點都有獨立的磁盤存盤系統和記憶體系統,業務資料根據資料庫模型和應用特點劃分到各個節點上,每臺資料節點通過專用網路或者商業通用網路互相連接,彼此協同計算,作為整體提供 ......

    uj5u.com 2020-09-10 06:11:41 more
  • 滴滴資料倉庫指標體系建設實踐

    **桔妹導讀:**指標體系是什么?如何使用OSM模型和AARRR模型搭建指標體系?如何統一流程、規范化、工具化管理指標體系?本文會對建設的方法論結合滴滴資料指標體系建設實踐進行解答分析。 #1. 什么是指標體系 ##1.1 指標體系定義 指標體系是將零散單點的具有相互聯系的指標,系統化的組織起來,通 ......

    uj5u.com 2020-09-10 06:12:52 more
  • 單表千萬行資料庫 LIKE 搜索優化手記

    我們經常在資料庫中使用 LIKE 運算子來完成對資料的模糊搜索,LIKE 運算子用于在 WHERE 子句中搜索列中的指定模式。 如果需要查找客戶表中所有姓氏是“張”的資料,可以使用下面的 SQL 陳述句: SELECT * FROM Customer WHERE Name LIKE '張%' 如果需要 ......

    uj5u.com 2020-09-10 06:13:25 more
  • 滴滴Ceph分布式存盤系統優化之鎖優化

    **桔妹導讀:**Ceph是國際知名的開源分布式存盤系統,在工業界和學術界都有著重要的影響。Ceph的架構和演算法設計發表在國際系統領域頂級會議OSDI、SOSP、SC等上。Ceph社區得到Red Hat、SUSE、Intel等大公司的大力支持。Ceph是國際云計算領域應用最廣泛的開源分布式存盤系統, ......

    uj5u.com 2020-09-10 06:14:51 more
  • es~通過ElasticsearchTemplate進行聚合~嵌套聚合

    之前寫過《es~通過ElasticsearchTemplate進行聚合操作》的文章,這一次主要寫一個嵌套的聚合,例如先對sex集合,再對desc聚合,最后再對age求和,共三層嵌套。 Aggregations的部分特性類似于SQL語言中的group by,avg,sum等函式,Aggregation ......

    uj5u.com 2020-09-10 06:14:59 more
  • 爬蟲日志監控 -- Elastc Stack(ELK)部署

    傻瓜式部署,只需替換IP與用戶 導讀: 現ELK四大組件分別為:Elasticsearch(核心)、logstash(處理)、filebeat(采集)、kibana(可視化) 下載均在https://www.elastic.co/cn/downloads/下tar包,各組件版本最好一致,配合fdm會 ......

    uj5u.com 2020-09-10 06:15:05 more
最新发布
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:33:24 more
  • MySQL中binlog備份腳本分享

    關于MySQL的二進制日志(binlog),我們都知道二進制日志(binlog)非常重要,尤其當你需要point to point災難恢復的時侯,所以我們要對其進行備份。關于二進制日志(binlog)的備份,可以基于flush logs方式先切換binlog,然后拷貝&壓縮到到遠程服務器或本地服務器 ......

    uj5u.com 2023-04-20 08:28:06 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:27:27 more
  • 快取與資料庫雙寫一致性幾種策略分析

    本文將對幾種快取與資料庫保證資料一致性的使用方式進行分析。為保證高并發性能,以下分析場景不考慮執行的原子性及加鎖等強一致性要求的場景,僅追求最終一致性。 ......

    uj5u.com 2023-04-20 08:26:48 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:26:35 more
  • 云時代,MySQL到ClickHouse資料同步產品對比推薦

    ClickHouse 在執行分析查詢時的速度優勢很好的彌補了MySQL的不足,但是對于很多開發者和DBA來說,如何將MySQL穩定、高效、簡單的同步到 ClickHouse 卻很困難。本文對比了 NineData、MaterializeMySQL(ClickHouse自帶)、Bifrost 三款產品... ......

    uj5u.com 2023-04-20 08:26:29 more
  • sql陳述句優化

    問題查找及措施 問題查找 需要找到具體的代碼,對其進行一對一優化,而非一直把關注點放在服務器和sql平臺 降低簡化每個事務中處理的問題,盡量不要讓一個事務拖太長的時間 例如檔案上傳時,應將檔案上傳這一步放在事務外面 微軟建議 4.啟動sql定時執行計劃 怎么啟動sqlserver代理服務-百度經驗 ......

    uj5u.com 2023-04-20 08:25:13 more
  • Redis 報”OutOfDirectMemoryError“(堆外記憶體溢位)

    Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢位) ”問題如下: 一、報錯資訊: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢位),如圖: 格式化后的報錯資訊: { "timestamp": "2023-04-17 22: ......

    uj5u.com 2023-04-20 08:24:54 more
  • day02-2-商鋪查詢快取

    功能02-商鋪查詢快取 3.商鋪詳情快取查詢 3.1什么是快取? 快取就是資料交換的緩沖區(稱作Cache),是存盤資料的臨時地方,一般讀寫性能較高。 快取的作用: 降低后端負載 提高讀寫效率,降低回應時間 快取的成本: 資料一致性成本 代碼維護成本 運維成本 3.2需求說明 如下,當我們點擊商店詳 ......

    uj5u.com 2023-04-20 08:24:03 more
  • day02-短信登錄

    功能實作02 2.功能01-短信登錄 2.1基于Session實作登錄 2.1.1思路分析 2.1.2代碼實作 2.1.2.1發送短信驗證碼 發送短信驗證碼: 發送驗證碼的介面為:http://127.0.0.1:8080/api/user/code?phone=xxxxx<手機號> 請求方式:PO ......

    uj5u.com 2023-04-20 08:23:11 more