Friday, June 17, 2011

MySQL索引使用筆記« performance geeks

MySQL索引使用筆記« performance geeks

Another Note:

From

善用 sub query 優化 order by limit

假設 , 我們有個 Table 叫 test , 有 20 萬筆記錄 , test 有 20 個欄位好了 , 其中有一個欄位 post_time 有建立索引可以排序用的 , 而有個主鍵 id

下一道指令

SELECT * FROM test ORDER BY post_time DESC LIMIT 150000,10

這道指令看似簡單 , 理論上應該跑很快 ~ 實際上卻不然 , 也許跑上 20 秒 , 因為這牽扯到 MySQL Server 的 sort buffer 大小 , 因為這道指令可能會因為 buffer 不足而改用 disk 作 sort , 這樣就很慢了

這時候就要搬出 subquery 了 , 怎麼作 ? 看看下面

SELECT * FROM test  AS t INNER JOIN ( SELECT id FROM test ORDER BY post_time DESC LIMIT 15000,10 ) AS s ON t.id=s.id

我相信 , 這道指令應該 1 秒都不用

為何會如此呢 ?

因為我們在 subquery 中只有抓 id , 這樣 mysql 就只需要少量記憶體就可以存放資料列進行排序 , 原始的作法就是每一列有多少資料 , mysql 就必須分配多少記憶體 , 如果資料數太大 , 記憶體不夠分配 , 自然就是用 disk 了

但如果我們要抓的資料只是前面幾筆 , 例如 LIMIT 100,10 , 那麼原本的寫法會比較快 , 因此這可以在程式中判斷而交互使用兩種 QUERY 的方式

Thursday, June 16, 2011

MySQL :: MySQL 5.1 Reference Manual :: 7.2.2 EXPLAIN Output Format

MySQL :: MySQL 5.1 Reference Manual :: 7.2.2 EXPLAIN Output Format

Groupon 申請上市, 網路的泡沫準備要爆了 ?

Groupon 申請上市, 網路的泡沫準備要爆了 ?: "


最近很多人在談論網路的第二次泡沫, 因為 LinkedIn 等公司以非常離譜的價錢在 Nasdaq 上市, 這家公司 2010 年的淨利為 185 萬美金, 折合新台幣 5300 萬元, 但是根據最新 Nasdaq 的收盤價, LinkedIn 的市值大約是 2100 億台幣


一家一年賺不到一億的公司, 竟然有高達 2100 億台幣的市值, 本益比高達 1163 !


回頭看看 Google 這家公司, 本益比: 20.3, 也就是說, 現在市場對於 LinkedIn 這家公司的看法, 認為它未來發展的潛力大概是 Google 的 60 倍


Google 的 60 倍 … ?



雖然一些報章雜誌不斷強調這是泡沫, 但是起初我不以為意, 覺得應該沒有這麼嚴重, 也認為現在的網路業跟西元 2000 年已經有很大的不同, 體質和商業模式都更為健全. 但是, 直到我看到另一家公司也打算要申請 IPO, 我才發現情況有多麼離譜:


這家公司叫做 Groupon


Groupon 去年虧損四億美金, 今年第一季再虧掉一億美金, 那麼他希望以多少的市值上市呢? 答案是 200 億到 300 億美金, 也就是 5700 億到 8500 億新台幣左右的市值, 我沒辦法算它的本益比, 因為這家公司根本一毛錢都還沒賺到, 員工的數量, 卻在短短兩年內暴增到 8000 人. 但是 Groupon 卻急著 IPO, 預計從投資人身上募集到 7.5 億美金的資金, 約新台幣 200 億.


這麼多錢要用在哪裡呢? 根據 Groupon 過去的歷史經驗, 這些募集來的錢多數流回員工還有早期的投資人身上. 數據可以參考 http://allthingsd.com/20110602/where-did-groupons-billion-dollars-go/


如 果看到這邊, 你還不了解到底是怎麼一回事的話, 我提醒你一個專有名詞, 叫做 「龐氏騙局」, Groupon 的運作方式, 讓我越來越懷疑像是 Ponzi Scheme: 很大的資金規模, 很可觀的報酬 (對於那些員工和早期的投資人), 但是整體來說, 虧損的洞卻是越來越大. 最為關鍵的是: 他們把後進的投資人的錢, 拿回去付給早期的投資人, 而非全部投入公司, 讓公司創造新的營收或是真正的價值.


我上網查了一下, 我果然不是第一個提出這種懷疑的人, 本篇文章的作者 Conor Sen 認為 Groupon 根本沒有償還能力: http://www.minyanville.com/businessmarkets/articles/groupon-groupon-ipo-tech-stocks-linked/6/3/2011/id/34936


龐氏騙局破裂的原因, 就是開始有投資人想要拿回自己的本金, 結果發現拿不回來, 最後形成連鎖效應, 最後跑的一群人血本無歸.


現在市場上存在幾批人, 第一批人是華爾街 + Groupon 之流的公司, 這些人趁著經濟稍有起色, 想盡辦法要讓公司上市, 從投資人身上募集可觀的資金, 至於該上市公司的 business 是不是 sustainable, 公司的體質如何, 財務狀況如何, 這些都是以後再說, 總之, 未來性一定很好, 只要有投資人願意相信美好的未來就可以 (畢竟世界上哪一件事情不是這樣呢?). 無論網路的泡沫是否破裂, 他們都可以賺到錢, 而且很多.


第二批是聰明的投資人, 這些人知道他們投資的公司並沒有這麼高的價值, 卻還是願意用離譜的金額不斷炒高公司的價值, 因為他們玩的是 musical chair 的遊戲, 這個遊戲大家一定都玩過: 音樂開始, 一群人繞著有限的座位轉圈圈, 音樂一停止, 大家得趕快搶到座位, 沒搶到座位的人就出局. 這些投資人圍著椅子開 party, 等到音樂停了, 他們相信自己可以搶到椅子, 不會是最後一個動作太慢, 沒搶到椅子的人, 所以他們不斷炒高股票, 因為他們相信後面還會有一些傻傻的人, 把公司的股票炒得更高, 卻沒發現, 椅子早就已經被搬空了.


第三批就是那些沒搶到椅子的投資人, 他們位於食物鏈的最底層, 他們根本不懂網路, 不懂軟體, 只不過手裡有一些閒錢, 夢想著跟到名牌, 搭上網路大飛躍的列車, 可以大發一筆, 他們不知道自己是食物鏈的最底層, 等到發現自己的本金拿不回來的時候, 錢早已經被上面的兩批人分光了. LinkedIn 剛剛上市沒多久, 股價一度暴漲到 122 塊美金, 當時折合的市值是 3300 億新台幣, 現在沒多久股價已經回落到 77 塊美金左右, 公司市值變成 2100 億新台幣. 我認為在這個落差之中, 已經有一批食物鏈最底層的投資人被斷頭, 血本無歸, 甚至於他們現在還愚蠢地抱著股票, 覺得自己有一天可以解套, 股價一定會再漲回去, 但是事實是, 網路就算沒有二次泡沫, LinkedIn 的股價只會繼續往下掉, 掉回到這家公司真正的價值. 因為第一批和第二批的投資人早就已經出場了, 沒有人會再炒作這支股票. The party is over.


天底下沒有白吃的午餐, 就算有, 也輪不到你. 腦充血的人還是醒醒吧.

















加入MMDays在facebook的粉絲團 隨時閱讀最新文章


"

##HIDEME##