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

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

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

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

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

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

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

FOLLOW US

對抗久坐職業傷害

研究指出每天增加 2 小時坐著的時間,會增加大腸癌、心臟疾病、肺癌的風險,也造成肩頸、腰背疼痛等常見問題。

然而對抗這些問題,卻只需要工作時定期休息跟伸展身體即可!

你想輕鬆改變現狀嗎?試試看我們的 PomodoRoll 番茄鐘吧! PomodoRoll 番茄鐘會根據你所設定的專注時間,定期建議你 1 項辦公族適用的伸展運動,幫助你打敗久坐所帶來的傷害!

贊助我們的創作

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

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