原创 我發現 Linux 文檔寫錯了

作者:小林coding 圖解計算機基礎網站:https://xiaolincoding.com 大家好,我是小林。 週末的時候,有位讀者疑惑爲什麼 Linux man 手冊中關於 netstat 命令中的 tcp listen 狀態下

原创 1.5 萬字 + 40 張圖解 HTTP 常見面試題

作者:小林coding 圖解計算機基礎網站:https://xiaolincoding.com 大家好,我是小林,我最開始寫的第一篇圖解文章就是這篇: 那時候我也就不到 100 讀者,如今這篇閱讀都快 2 萬了。 當時這篇有些地方沒

原创 面試官:什麼是MySQL 事務與 MVCC 原理?

作者:小林coding 圖解計算機基礎網站:https://xiaolincoding.com/ 大家好,我是小林。 之前寫過一篇 MySQL 的 MVCC 的工作原理,最近有讀者在網站上學習的時候,評論區指出了一些問題。 而這個知識點很

原创 趣說 | 數據庫和緩存如何保證一致性?

作者:小林coding 圖解計算機基礎網站:https://xiaolincoding.com/ 一天,老闆說「最近公司的用戶越來越多了,但是服務器的訪問速度越來越差的,阿旺幫我優化下,做好了給你畫個餅!」。 程序員阿旺聽到老闆口中

原创 在 TIME_WAIT 狀態的 TCP 連接,收到 SYN 後會發生什麼?

週末跟朋友討論了一些 TCP 的問題,在查閱《Linux 服務器高性能編程》這本書的時候,發現書上寫了這麼一句話: 書上說,處於 TIME_WAIT 狀態的連接,在收到相同四元組的 SYN 後,會回 RST 報文,對方收到後就會斷開連接。

原创 微信一面:什麼是一致性哈希?用在什麼場景?解決了什麼問題?

大家好,我是小林。 在逛牛客網的面經的時候,發現有位同學在面微信的時候,被問到這個問題: 第一個問題就是:一致性哈希是什麼,使用場景,解決了什麼問題? 這個問題還挺有意思的,所以今天就來聊聊這個。 發車! 如何分配請求? 大多數網站背後

原创 拔掉網線後, 原本的 TCP 連接還存在嗎?

大家好,我是小林。 今天,聊一個有趣的問題:拔掉網線幾秒,再插回去,原本的 TCP 連接還存在嗎? 可能有的同學會說,網線都被拔掉了,那說明物理層被斷開了,那在上層的傳輸層理應也會斷開,所以原本的 TCP 連接就不會存在的了。就好像, 我們

原创 MySQL 使用 like "%x",索引一定會失效嗎?

大家好,我是小林。 昨天發了一篇關於索引失效的文章:誰還沒碰過索引失效呢 我在文末留了一個有點意思的思考題: 圖片 這個思考題其實是出自於,我之前這篇文章「一條 SQL 語句引發的思考」中留言區一位讀者朋友出的問題。 很多讀者都在留言區說

原创 面試官:聊聊索引失效?失效的原因是什麼?

大家好,我是小林。 在工作中,如果我們想提高一條語句查詢速度,通常都會想對字段建立索引。 但是索引並不是萬能的。建立了索引,並不意味着任何查詢語句都能走索引掃描。 稍不注意,可能你寫的查詢語句是會導致索引失效,從而走了全表掃描,雖然查詢的

原创 圖解MySQL:count(*) 、count(1) 、count(主鍵字段)、count(字段)哪個性能最好?

大家好,我是小林。 當我們對一張數據表中的記錄進行統計的時候,習慣都會使用 count 函數來統計,但是 count 函數傳入的參數有很多種,比如 count(1)、count(*)、count(字段) 等。 到底哪種效率是最好的呢?是不

原创 面試官:爲什麼 TCP 三次握手期間,客戶端和服務端的初始化序列號要求不一樣?

大家好,我是小林。 爲什麼 TCP 三次握手期間,客戶端和服務端的初始化序列號要求不一樣的呢? 接下來,我一步一步給大家講明白,我覺得應該有不少人會有類似的問題,所以今天在肝一篇! 正文 爲什麼 TCP 三次握手期間,爲什麼客戶端和服務

原创 字節面試:SYN 包在什麼場景下會被丟棄?

大家好,我是小林。 之前有個讀者在秋招面試的時候,被問了這麼一個問題:SYN 報文什麼時候情況下會被丟棄? 好傢伙,現在面試都問那麼細節了嗎? 不過話說回來,這個問題跟工作上也是有關係的,因爲我就在工作中碰到這麼奇怪的時候,客戶端向服務

原创 爲了拿捏 Redis 數據結構,我畫了 40 張圖(完整版)

大家好,我是小林。 Redis 爲什麼那麼快? 除了它是內存數據庫,使得所有的操作都在內存上進行之外,還有一個重要因素,它實現的數據結構,使得我們對數據進行增刪查改操作時,Redis 能高效的處理。 因此,這次我們就來好好聊一下 Redi

原创 處於 establish 狀態的 TCP 連接,收到 SYN 包會發生什麼?

大家好,我是小林。 昨晚有位讀者問了我這麼個問題: 大概意思是,一個已經建立的 TCP 連接,客戶端中途宕機了,而服務端此時也沒有數據要發送,一直處於 establish 狀態,客戶端恢復後,向服務端建立連接,此時服務端會怎麼處理? 看

原创 面試官:MySQL的幻讀是怎麼被解決的?

大家好,我是小林。 我之前寫過一篇數據庫事務的文章「 事務、事務隔離級別和MVCC」,這篇我說過什麼是幻讀。 在這裏插入圖片描述 然後前幾天有位讀者跟我說,我這個幻讀例子不是已經被「可重複讀」隔離級別解決了嗎?爲什麼還要有 next-ke