寫給那些說web開發不須要懂數據結構和算法的...

這麼多年,面試過那麼多人,我以4年之姿...俯瞰1-3年的人,鳥瞰4年以上的人...我注意到幾個點:mysql

  1. 對語言的熟練程度,通常是隨着年齡的增加,慢慢的變精...
  2. 寫代碼的速度,隨着年齡的增加,通常是愈來愈慢的...基本等於敲鍵盤多塊
  3. 對算法+數據結構重視的人,一開始就是重視的,隨着年齡的增加,會出現兩極分化趨勢
  4. 能力越強的人,通常是越搞怪的人...你發現不了那我的的搞怪,必定是問的方式不對。我面試的時候,時間通常會超過1個小時,大部分時間,都是在談技術以外的東西..

幾個現實中的例子:面試

  1. 國家省市縣3級聯動..最好的組織方式是樹[left_child,right_child],而不是[id,parent_id]。不少人選後者,一個緣由是各個網站上都是這麼說的[誤人子弟啊]..另外一個緣由是前者更新太麻煩了... 第一個緣由的,我直接pass掉了,第二個緣由的人,我會提醒一下,省市縣3級聯動...咱們的數據更新通常是跟着國家來的,基本上是一個月都可貴更新一次算法

  2. 優先隊列。不少人都知道重要的事情要先作,但用到程序上,他們就忘記了... 我說作排序就是作優先隊列...有一次,領導說,小羅,按單個字段的排序不錯,但我想按會員等級,金額大小,催促時間,剩餘時間排序...你默認就給我按照這些排序把,我會給你定個權重,哪一個哪一個更重要我瞬間以爲,我以前作的排序都弱爆了,只是把數據陳列出來而已sql

  3. 不少人,都知道myisam和innodb各有所長,因而爲了那麼一點點性能..一個表myisam,一個表innodb... 過了幾天,過來問我,能不能把那個myisam錶轉換成innodb...爲何呢,由於myisam缺了某個功能...更有甚者,爲了支持全文檢索,居然把一個原本innodb的換成了myisam...而後,其它不少代碼,直接廢了性能優化

  4. 我說,你不要用select * 了,你要什麼字段就拿什麼字段,他跟我說,萬一之後要用到了,萬一其它人也想用個人函數呢...而後,我吧嗒吧嗒的說了一大堆,一條語句從prepare開始到findAll是怎麼處理的...說完後,他貌似懂了數據結構

  5. 我說,索引不要亂建,主庫的某個表更新那麼頻繁,都快被拖死了.. 建了一個索引,一年都可貴用到1-2次的索引...我說where語句和索引要搭配,別建了個索引,而後where語句隨便亂寫函數

  6. 最氣人的是,一個列表20條數據,有些表關聯居然是一條一條的去查...後面有一次,居然有一我的模仿另一我的,又炮製了一條...我直接無語掉性能

性能是什麼?性能的優化有是什麼?汗...我也不知道,我只能說:性能優化就是數據結構+算法的優化優化

目標是天天堅持寫一篇,文風不定... 內容或是通俗或是難啃...至於被扔雞蛋...也沒什麼大不了
最近在研究 mysql內幕innodb內幕, 有同趣的同窗,能夠一塊兒網站

相關文章
相關標籤/搜索