後端工程師經驗談 — 為什麼你應該在部署到 production 之前執行過 1 遍 EXPLAIN 指令

後端工程師很多工作會跟資料庫打交道,而通常很多公司為了方便會讓團隊在開發環境共用資料庫,裡面有測試資料之外,也有可能拿修改過的 production 資料填充(也可能沒修改過⋯⋯噢,壓力山大)

大家共用資料庫的結果,就是資料庫的 schema 或者索引(indexes)會與 production 環境有些許出入,而你所寫的 query 可能在開發環境上跑得又快又順,但到了 production 不僅慢,還甚至引起災難,這就是因為你所寫的 query 在開發環境有用到他人建立的索引,可是 production 沒有這些索引可用,造成 full table scan, 甚至可能引起連鎖反應⋯⋯ 😖

所以,你應該在部署到 production 之前至少執行過 1 遍 EXPLAIN 指令!

除了可以知道你的 query 是否如預期般執行之外,也可以避免開發環境與 production 環境不一致造成的問題,才不會火箭發射就爆炸。

雖然講起來很輕鬆,但經驗告訴我養成這個習慣很重要,因為親身體驗過幾次開發環境與 production 資料庫 schema 與索引不一致,造成上線後人仰馬翻 😫

關聯式資料庫也好, NoSQL 也好,都有類似的 EXPLAIN 指令能夠使用,熟悉這個指令是很重要的功課!

追蹤新知

看完這篇文章了嗎?還意猶未盡的話,追蹤粉絲專頁吧!

我們每天至少分享 1 篇文章/新聞或者實用的軟體/工具,讓你輕鬆增廣見聞提升專業能力!如果你喜歡我們的文章,或是想了解更多特定主題的教學,歡迎到我們的粉絲專頁按讚、留言讓我們知道。你的鼓勵,是我們的原力!

贊助我們的創作

看完這篇文章了嗎? 休息一下,喝杯咖啡吧!

如果你覺得 MyApollo 有讓你獲得實用的資訊,希望能看到更多的技術分享,邀請你贊助我們一杯咖啡,讓我們有更多的動力與精力繼續提供高品質的文章,感謝你的支持!