面試不是意味著給解決方案,有時候我們也應該質疑問題

來源:互聯網
上載者:User

在面試的時候你會被問到各種各樣的怪問題,在絞盡腦汁想著解決方案的時候你或許可以從實際的角度給出最完美的方案。

以下舉個資料庫相關的面試問題:

CSDN論壇文章總量的統計,要求即時更新!

MyISAM 儲存引擎的情況SELECT COUNT(*)的Query就能解決了!註:MyISAM 儲存引擎互連網基本不會選擇。

Innodb  儲存引擎的情況呢?千萬的文章呢?訪問量再大一點呢?

或許有些哥們會想到增加一個統計表,每次有新的文章產生的時候,都將統計表中統計量這個值增加1,

這個哥們的方法肯定能解決查詢的問題不錯,但是高峰時期可能每秒就有幾十甚至上百個文章新增操作的時候呢?

又是一場噩夢了,是不是......

其實這種問題我們換個思維,這是一個合理的需求嗎?明顯需求造成的資源投入產出比相當低。

多少人會關心即時更新的文章總量統計?有誰會在乎這個資料短時間內的不準確性?

其實去掉即時更新這個問題就很好解決了,建立一張統計表,隔一段時間去統計一次就OK了,不是嗎?

這樣既可以解決統計值查詢的效率問題,又可以保證不影響新發貼的效率,一舉兩得。

別看這個問題出現的不多,其實實際有很多類似的功能,如:某些表達到一個數量級之後,我們去分頁顯示他的時候,完全可以

不用準確的顯示這個列表總共有多少條資訊,總共分了多少頁,而只需要一個大概的估計值或者一個時間段之前的統計值就OK了。

這樣也可用省去即時大資料的COUNT操作。


總結:從面試題看生產,很多時候我們可用換個角度思考問題,更多的發散思維。

    從需求性看實際,並非一味的即時和精準是比較好的,有價值的方案。

    從問題出發,我們更需要的是知道問題的本質原因。


相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.