索引的力量

2021-09-05 18:27:12 字數 1623 閱讀 7248

一直對資料庫的優化一竅不通,大家談論最多應該是怎樣從 sql 查詢語句和索引下手去優化。對於索引,很多高手都寫過很多文章,看來看去也沒悟出什麼東西,不過,今天我修改了資料表的幾個主鍵(可以認為就是聚焦索引)並且新增了一些非聚焦索引,sqlserver 的效能立刻提高了上去。

對於 users 表,原先是把主鍵設定為 userid(自增字段)欄位上,通過事件***,發現對於 users 表的查詢比較耗費資源(可以從 cpu、reads、duration這三相值來判斷),而且所有的查詢基本上都是對 users 表的 name 來查詢的,即 select * from users where name = '***',既然where後邊跟的是 name,就應該把聚焦索引設定到 name 欄位上,並且 name 欄位是不重複的,所以可以這樣修改。修改前的耗費忘了記錄了,修改之後的耗費大大降低了,cpu、reads、duration分別為0、9、0。如果where後面跟的字段是可重複的,就不能作為聚焦索引,這時可以為該字段新增非聚焦索引。

按照這個思路來優化其他表。

select count(*) from mark where name = '***'

優化前cpu / reads / duration(下同)

15 / 1401 / 16

32 / 1422 / 30

31/  1422/  46

優化後: 對mark表加入name以及infoid的非聚焦索引

0 /  38 /  0

15 /  39 /  16

0 /  12 /  0

0 /  81 /  0

0 /  37 /  30

0 /  12 /  0

select * from comment where infoid = '12345'

優化前:

0 / 644 / 0

15 / 664 / 16

優化後:comment表給infoid加非聚焦索引

0 / 158 / 0

0 / 158 / 0

16 / 42 / 16

0 / 42 / 0

對所有表都經過類似的優化後,效能立刻提公升了上去,cpu 從原先的 95% 左右降低到 60% 左右。由此可見,對於表的設計應該非常重視主鍵的選擇,不要為每個表都來乙個 int 型別的自增欄位作為主鍵,另外就是跟蹤資料庫查詢,根據具體的查詢來建立非聚焦索引。

不清楚 asp.net 到底能承受多大的頁面瀏覽量,雖然這個問題問的太寬泛,但總體印象上,對 asp.net 的效能有所懷疑。大型 web 好像也沒有幾個用 asp.net 做的,dangdang 網是的,聖誕節的時候去訪問,老是出現頁面打不開的故障;donews 也是,不過,也是經常出現那非常熟悉的錯誤頁面,至於 myspace,沒有太多關注。

看到關於豆瓣的一組資料,很是羨慕:一台web伺服器執行 lighttpd,每天處理2500萬個request,峰值每秒處理1000個request; 一台應用伺服器執行python,每天處理500萬pv; 資料庫伺服器執行mysql,負載情況沒有介紹。

對於特別注重速度的web2.0年代裡,覺得 python、php、ror 這些輕量級的框架來做 web 開發將更加適合,再加上免費的 linux 平台以及 mysql資料庫,最理想不過了。微軟也搞了乙個 mvc 框架,呵呵,是不是覺察到了一些危機了呢?

資本的力量 趨勢的力量 規律的力量

牛熊的更替,潮起潮落,都是資本在 的興風作浪,進進出出所造成的。這就是資本的力量。任何資本,在 上生存,必然要遵從 的趨勢發展,才能生存下來。這就是趨勢的力量。的趨勢無非是牛市 趨勢 熊市 趨勢和上躥下跳 猴市 又可以分為高位派發箱體 和低位建倉箱體 無論哪一種趨勢,都是資本要遵從的趨勢,首先分析處...

人的力量和大自然的力量

今天晚上在檯燈前看書,突然乙個乙個針尖大小的小蟲子飛到了我的書上,我沒有打死它,觀察了它一會,看著它跟小蒼蠅一樣捋一捋腿,舒展舒展,就在書上爬了會,然後轉瞬飛起消失在我的視野外。本來乙個很小的事情,突然和這些天在考慮的一些事情聯絡起來,感覺還是有必要寫點什麼,可能見識淺薄,還忘笑納。這麼小的飛蟲,如...

文化的力量

今天看了劉老師的這篇文章,感觸很多,很少 別人的內容,今天轉到blog上來。希望更多的人一起來分享。每當我們談到企業文化,一定會有人說文化不能當飯吃。企業的目標是獲利 賺錢,抓文化建設太虛,是浪費時間的事情,也會加大公司的成本。而當這些人看到了他們無法接受的問題時 如 員工工作激情下降,部門之間合作...