B+樹被廣泛應(yīng)用于MySQL數(shù)據(jù)庫的索引實(shí)現(xiàn),不過并未展開細(xì)說,但是呢B+樹是一種重要的數(shù)據(jù)結(jié)構(gòu),常年出現(xiàn)在各種面試題中,這次就來一起學(xué)習(xí)下和B+樹相關(guān)的MySQL索引底層實(shí)現(xiàn)的內(nèi)容。
當(dāng)業(yè)務(wù)規(guī)模達(dá)到一定規(guī)模之后,像淘寶日訂單量在5000萬單以上,美團(tuán)3000萬單以上。數(shù)據(jù)庫面對(duì)海量的數(shù)據(jù)壓力,分庫分表就是必須進(jìn)行的操作了。而分庫分表之后一些常規(guī)的查詢可能都會(huì)產(chǎn)生問題,最常見的就是比如分頁查詢的問題。一般我們把分表的字段稱作shardingkey,比如訂單表按照用戶ID作為shardingkey,那么如果查詢條件中不帶用戶ID查詢?cè)趺醋龇猪摚坑直热绺嗟亩嗑S度的查詢都沒有shardingkey又怎么查詢?
本文梳理了Linux文件系統(tǒng)的特點(diǎn)和主要功能。
在使用C語言開發(fā)嵌入式產(chǎn)品的過程中,當(dāng)使用到malloc函數(shù)時(shí)候都會(huì)有一個(gè)爭議,“使用動(dòng)態(tài)內(nèi)存分配安全嗎?”,就連美國軍方在safety-critical的嵌入式航空電子設(shè)備代碼中,也禁止動(dòng)態(tài)內(nèi)存分配,我們來細(xì)細(xì)分析下。
本文僅討論linux下的庫。
分享一個(gè)小技巧,使用MDK編譯器,讓STM32程序HEX文件中加入固件版本信息,估計(jì)很多老手都已經(jīng)在使用(你有好的方法歡迎分享,希望我的磚能引來你的玉),該方法獻(xiàn)給新手或初學(xué)者。
雖然Linux被成功使用,但并不意味著它很容易使用。Linux包含的代碼超過一百萬行,其運(yùn)作帶有鮮明的Linux方法論味道,初學(xué)者可能難以迅速掌握。
在之前一篇博客中(簡易PID算法的快速掃盲)簡單介紹了PID算法的基本原理和位置式算法的實(shí)現(xiàn)過程,由于部分推導(dǎo)過程已經(jīng)在上一篇文章做過介紹,所以推導(dǎo)過程本文不再贅述,本文重點(diǎn)將對(duì)離散增量式PID的算法進(jìn)行實(shí)現(xiàn)。
這個(gè)是今天在微信群里討論的一個(gè)問題,然后我們就在群里討論,有的大神說這個(gè)是內(nèi)存越界,也有大神說可能是人品有問題,也有大神說這個(gè)是因?yàn)閷懘a前沒有選好一個(gè)良辰吉日,反正大家想法都非常多,也非常古怪,這可能就是討論群存在的一個(gè)原因了。經(jīng)過不斷的驗(yàn)證,發(fā)現(xiàn)這個(gè)問題是因?yàn)榫幾g器優(yōu)化的問題。
曾經(jīng)在開發(fā)Linux內(nèi)核驅(qū)動(dòng)的時(shí)候,創(chuàng)建了一個(gè)補(bǔ)丁文件,但是在把補(bǔ)丁打到主分支的時(shí)候提示很多編碼風(fēng)格的錯(cuò)誤問題,后來重做了補(bǔ)丁才解決了問題,這也是沒有嚴(yán)格按照的Linux編碼風(fēng)格從而導(dǎo)致的問題。因?yàn)楫?dāng)時(shí)代碼量不大,所以解決問題的時(shí)間相對(duì)較少。在代碼量增大的情況下可以借助工具進(jìn)行自動(dòng)修改。
最近在看Mybatis的源碼,剛好看到緩存這一塊,Mybatis提供了一級(jí)緩存和二級(jí)緩存;一級(jí)緩存相對(duì)來說比較簡單,功能比較齊全的是二級(jí)緩存,基本上滿足了一個(gè)緩存該有的功能;當(dāng)然如果拿來和專門的緩存框架如ehcache來對(duì)比可能稍有差距;本文我們將來整理一下實(shí)現(xiàn)一個(gè)本地緩存都應(yīng)該需要考慮哪些東西。
公司最近安排了一波商品搶購活動(dòng),由于后臺(tái)小哥操作失誤最終導(dǎo)致活動(dòng)效果差,被用戶和代理商投訴了。經(jīng)理讓我?guī)聜円黄饛?fù)盤這次線上事故,于是……
引入任何一種技術(shù)都是存在風(fēng)險(xiǎn)的,分庫分表當(dāng)然也不例外,除非庫、表數(shù)據(jù)量持續(xù)增加,大到一定程度,以至于現(xiàn)有高可用架構(gòu)已無法支撐,否則不建議大家做分庫分表,因?yàn)樽隽藬?shù)據(jù)分片后,你會(huì)發(fā)現(xiàn)自己踏上了一段踩坑之路,而分布式主鍵 ID 就是遇到的第一個(gè)坑。
開發(fā)一般都會(huì)借助一些工具,協(xié)助開發(fā)并提高開發(fā)效率,今天就來給大家介紹幾款Linux比較實(shí)用的工具。
看一份源碼什么很重要?除了各種代碼規(guī)范之外,還有一個(gè)比較重要的就是注釋。
2010年,幾個(gè)搞IT的年輕人,在美國舊金山成立了一家名叫“dotCloud”的公司。這家公司主要提供基于PaaS的云計(jì)算技術(shù)服務(wù)。具體來說,是和LXC有關(guān)的容器技術(shù)。
為什么 github 下載速度這么慢?如何提高 github 的下載速度?
我們會(huì)通過/proc文件系統(tǒng)找到正在運(yùn)行的進(jìn)程的字符串所在的虛擬內(nèi)存地址,并通過更改此內(nèi)存地址的內(nèi)容來更改字符串內(nèi)容,使你更深入了解虛擬內(nèi)存這個(gè)概念!這之前先介紹下虛擬內(nèi)存的定義!
本篇通過C語言實(shí)現(xiàn)一個(gè)簡單的進(jìn)程5狀態(tài)模型的狀態(tài)機(jī),讓大家熟悉一下狀態(tài)機(jī)的魅力。
本文介紹幾款Linux比較實(shí)用的工具,希望有所幫助。