這麼多年,面試過那麼多人,我以4年之姿...俯瞰1-3年的人,鳥瞰4年以上的人...我注意到幾個點:mysql
幾個現實中的例子:面試
國家省市縣3級聯動..最好的組織方式是樹[left_child,right_child],而不是[id,parent_id]。不少人選後者,一個緣由是各個網站上都是這麼說的[誤人子弟啊]..另外一個緣由是前者更新太麻煩了... 第一個緣由的,我直接pass掉了,第二個緣由的人,我會提醒一下,省市縣3級聯動...咱們的數據更新通常是跟着國家來的,基本上是一個月都可貴更新一次算法
優先隊列。不少人都知道重要的事情要先作,但用到程序上,他們就忘記了... 我說作排序就是作優先隊列...有一次,領導說,小羅,按單個字段的排序不錯,但我想按會員等級,金額大小,催促時間,剩餘時間排序...你默認就給我按照這些排序把,我會給你定個權重,哪一個哪一個更重要我瞬間以爲,我以前作的排序都弱爆了,只是把數據陳列出來而已sql
不少人,都知道myisam和innodb各有所長,因而爲了那麼一點點性能..一個表myisam,一個表innodb... 過了幾天,過來問我,能不能把那個myisam錶轉換成innodb...爲何呢,由於myisam缺了某個功能...更有甚者,爲了支持全文檢索,居然把一個原本innodb的換成了myisam...而後,其它不少代碼,直接廢了性能優化
我說,你不要用select *
了,你要什麼字段就拿什麼字段,他跟我說,萬一之後要用到了,萬一其它人也想用個人函數呢...而後,我吧嗒吧嗒的說了一大堆,一條語句從prepare開始到findAll是怎麼處理的...說完後,他貌似懂了數據結構
我說,索引不要亂建,主庫的某個表更新那麼頻繁,都快被拖死了.. 建了一個索引,一年都可貴用到1-2次的索引...我說where語句和索引要搭配,別建了個索引,而後where語句隨便亂寫函數
最氣人的是,一個列表20條數據,有些表關聯居然是一條一條的去查...後面有一次,居然有一我的模仿另一我的,又炮製了一條...我直接無語掉性能
性能是什麼?性能的優化有是什麼?汗...我也不知道,我只能說:性能優化就是數據結構+算法的優化優化
目標是天天堅持寫一篇,文風不定... 內容或是通俗或是難啃...至於被扔雞蛋...也沒什麼大不了
最近在研究 mysql內幕
和 innodb內幕
, 有同趣的同窗,能夠一塊兒網站