Time of Update: 2015-03-04
標籤:原文:走向DBA[MSSQL篇] 面試官最喜歡的問題 ----索引+C#面試題客串對大量資料進行查詢時,可以應用到索引技術。索引是一種特殊類型的資料庫物件,它儲存著資料表中一列或者多列的排序結果,有效地使用索引可以提高資料的查詢效率。大家面試初級、中級或者進階程式員的時候應該大部分都會被問到這樣一些問題,你瞭解索引嗎?你知道索引的分類嗎?你知道這些索引的區別嗎?你如何去建立有效索引。本章讓大家學會反問面試官 hold住全場。 --_____--友情客串最近面試的文章比較火 客串一下
Time of Update: 2015-03-04
標籤:原文:走向DBA[MSSQL篇] 積跬步行千裡不知道大家對SQL系列的感不感興趣 先在這裡探個路 本文針對的讀者為SQL菜鳥 歡迎大牛駁論或者補充既然是探路篇 就先說下資料過濾中的偏門匹配 希望能給大家帶來收穫create table 蟲子的暫存資料表( 編號 varchar(30), 名稱 varchar(30), 備忘 varchar(100))insert into 蟲子的暫存資料表 values(‘編號01‘,‘name01‘,‘這是一個奇蹟‘)insert
Time of Update: 2015-03-04
標籤:1. 查看TCP串連狀態netstat -nat |awk ‘{print $6}‘|sort|uniq -c|sort -rnnetstat -n | awk ‘/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}‘ 或netstat -n | awk ‘/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}‘netstat -n | awk
Time of Update: 2015-03-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。 開始玩Go語言也是上學期快期末,Go語言給我最大的印象就是簡單,我原來一直是JAVA的擁護者,JAVA就像一個嚴謹的太翁,嚴格的繼承和實現關係。而Go猶如20歲的小夥,簡單高效充滿活力。畢竟它是Google的崽,自然後天的生長環境也差不到那裡去。 下面,回顧一下Go語言的特性: 一:簡單
Time of Update: 2015-03-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。GOROOTGO語言安裝的路徑,如MAC下是/usr/local/go,類似於JAVA中的JAVA_HOME。 GOPATHGOPATH表示程式碼封裝所在的地址,可以設定多個。假設:GOPATH=~/go1:~/go2,GOROOT=/usr/local/go,在代碼中引用了包:github.com/bitly/nsq/util那麼:GO程式在編譯時間會按先後次序到以下目錄中尋找源碼:~/go1/github.com/bitly/
Time of Update: 2015-03-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。go語言中包(package)與java中的包(package)非常類似,都是組織代碼的方式,而且都和磁碟上的目錄結構存在對應關係。 go語言中,包名一般為go代碼所在的目錄名,但是與java不同的是,go語言中包名只有一級,而在java中包名是以點分割的多級目錄組合的。 go語言中,引用包時需要以GOPATH/src目錄為相對根目錄,依次輸入下面的各級目錄名。如:環境變數GOPATH =
Time of Update: 2015-03-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。計時器用來定時執行任務,分享一段代碼:package main import "time"import "fmt" func main() {//建立計時器,兩秒以後觸發,go觸發計時器的方法比較特別,就是在計時器的channel中發送值timer1 := time.NewTimer(time.Second * 2)//此處在等待channel中的訊號,執行此段代碼時會阻塞兩秒<-timer1
Time of Update: 2015-03-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go語言函數中有三個點...表示為可變參數,可以接受任意個數的參數。範例程式碼:package main import "fmt" func Greeting(prefix string, who ...string) {fmt.Println(prefix)//接收到who是一個數組,可以用for遍曆。for _, name := range who {fmt.Println(name)}} func main(
Time of Update: 2015-03-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go語言中函數可以返回多個值,這和其它程式設計語言有很大的不同。對於有其它語言編程經驗的人來說,最大的障礙不是學習這個特性,而是很難想到去使用這個特性。 簡單如交換兩個數值的例子:package main import "fmt" func swap(a int, b int) (int, int) {return b, a} func main() {a := 1b := 2 a, b = swap(a, b)
Time of Update: 2015-03-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go是一門推崇軟體工程理念的程式設計語言。 Go的代碼必須放在GOPATH目錄下,它應該包含三個子目錄:src:用於以程式碼封裝的形式組織並儲存Go源碼檔案。應該分為三類:庫源碼檔案、命令源碼檔案、測試源碼檔案。pkg:用於存放由go
Time of Update: 2015-03-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。前幾日一朋友在學GO,問了我一些interface機制的問題。試著解釋發現自己也不是太清楚,所以今天下午特意查了資料和閱讀GO的源碼(基於go1.4),整理出了此文。如果有錯誤的地方還望指正。GO語言的interface是我比較喜歡的特性之一。interface與struct之間可以相互轉換,struct不需要像JAVA在源碼中顯示說明實現了某個介面,可以通過約定的形式,隱式的轉換到interface,還可以在運行時查詢介面類型,
Time of Update: 2015-03-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go語言要求不同的類型之間必須做顯示的轉換。轉化分為類型轉換和介面轉化。 類型轉換的思路是:X類型需要轉換為Y類型,文法是T(x). 如果對於某些地方的優先順序拿不準可以自己加()約束,變成(T)(X)。如:*Point(p) // 和 *(Point(p))一樣(*Point)(p) // p 轉換成 *Point(func())(x) // x 轉換成unc()(func() int)(x) // x 轉換 func()
Time of Update: 2015-03-04
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。【編者按】去年,Express.js庫作者TJ
Time of Update: 2015-03-03
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。這是系統資源限制,通常單進程不能超過 1024,我使用cgo來設定,代碼如下:package main/*#include <stdio.h>#include <sys/time.h>#include <sys/resource.h>int rlimit_init() { printf("setting rlimit\n"); struct rlimit limit;
Time of Update: 2015-03-03
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。// 接收UDP時間廣播,並設定系統時間func (sl *Slaver) masTimeSync(ch chan int) { // 開始監聽廣播時間 log.Printf("time sync listen [%s]", sl.Node.Port.PortUdpSlaTimeSync) for { (func() { // 監聽 mas 發來的同步時間
Time of Update: 2015-03-04
標籤:1.方法1 TCHAR pBuf[MAX_PATH]; //存放路徑的變數 GetCurrentDirectory(MAX_PATH, pBuf); //擷取程式的目前的目錄 _tcscat_s(pBuf, _T("\\")); _tcscat_s(pBuf, AfxGetApp()->m_pszExeName); _tcscat_s(pBuf, _T(".exe"
Time of Update: 2015-03-04
標籤:下面兩段代碼都在主線程中運行,我們在看別人代碼時會發現有時會直接調用,有時會利用performSelector調用,今天看到有人在問這個問題,我便做一下總結,[delegate imageDownloader:self didFinishWithImage:image]; [delegate performSelector:@selector(imageDownloader:didFinishWithImage:)withObject:self&nb
Time of Update: 2015-03-04
標籤:原文串連 http://www.infoq.com/cn/articles/misunderstanding-using-cache 如果說要對一個網站或者應用程式經常最佳化,可以說緩衝的使用是最快也是效果最明顯的方式。一般而言,我們會把一些常用的,或者需要花費大量的資源或時間而產生的資料緩衝起來,使得後續的使用更加快速。 如果真要細說緩衝的好處,還真是不少,但是在實際的應用中,很多時候使用緩衝的時候,總是那麼的不盡人意。換句話說,假設本來採用緩衝,可以使得效能提升為100(
Time of Update: 2015-03-04
標籤:通過原子計數可以在多線程情況下,對同一個數值進行加減操作,一般用於狀態同步。先看代碼:package main import "fmt"import "time"import "sync/atomic"import "runtime" func main() { // 定義一個整數var ops uint64 = 0 // 使用50個線程給ops累加數值for i := 0; i < 50; i++ {go func() {for {// 每次加1atomic.AddUint64(&
Time of Update: 2015-03-04
標籤:我們可以使用Channel來同步不同goroutines的執行。看下面的代碼:package main import "fmt"import "time" //這個函數會在新的goroutine中運行,執行結束時會給done channel中傳入值true//注意到中間有sleep了一秒func worker(done chan bool) {fmt.Print("working...")time.Sleep(time.Second)fmt.Println("done")