Time of Update: 2018-12-07
bash 的環境設定檔你是否會覺得奇怪,怎麼我們什麼動作都沒有進行,但是一進入 bash 就取得一堆有用的變數了? 這是因為系統有一些環境設定檔案的存在,讓 bash 在啟動時直接讀取這些設定檔,以規劃好 bash 的作業環境啦! 而這些設定檔又可以分為全體系統的設定檔以及使用者個人偏好設定檔。要注意的是, 我們前幾個小節談到的命令別名啦、自訂的變數啦,在你登出 bash 後就會失效,所以你想要保留你的配置, 就得要將這些配置寫入設定檔才行。底下就讓我們來聊聊吧! login 與
Time of Update: 2018-12-07
還記得搞怪的hold住姐Miss Lin麼,對於人們常規的行為,Miss Lin會挑起誇張的眉毛說:"Oh my God, it's not fashion!"。如果程式員圈子裡有位Miss Lin,對於一些功能的實現,她會認為哪些編碼實現方法是not
Time of Update: 2018-12-07
時間單位換算關係換算關係1 s = 10^3 ms = 10^6 us = 10^9 ns = 10^12 μs秒 毫秒 微秒 納秒 皮秒 周期概念 總結一下,它們之間的關係就是,指令周期由若干個機器周期組成,匯流排周期一般由4個刻度組成。 機器周期和匯流排周期……機器周期指的是完成一個基本操作的時間,這個基本操作有時可能包含匯流排讀寫,因而包含匯流排周期,但是有時可能與匯流排讀寫無關,所以,並無明確的相互包含的關係。
Time of Update: 2018-12-07
引言我們提倡編寫功能單一、結構清晰、介面簡單的函數,因為過於複雜的函數會給我們帶來很多問題:加深其他開發人員理解代碼的難度;不方便測試人員對其編寫測試案例;容易隱藏錯誤;出現問題難以定位……怎樣的函數算是複雜的函數?哪些代碼散發著“臭味”?除了依靠經驗豐富的程式員的敏銳嗅覺,我們還可以通過工具,對我們的函數和代碼進行度量。不像一位嚴格苛刻的代碼檢視人員,程式碼度量工具並不會板著臉對我們說:“嗯……這段代碼糟糕透了!",它反饋給我們的是一組度量值(Metrics),怎麼看待這些度量值,就因人而異了
Time of Update: 2018-12-07
UBUNTU下雙網卡綁定非常簡單,使用以下步驟:1.安裝軟體 apt-get install ifenslave 2.修改設定檔 /etc/network/interfaces auto lo iface lo inet loopbackiface eth0 inet dhcp iface eth1 inet dhcpauto bond0 iface bond0 inet static address 64.0.177.20 netmask 255.255.255.0 gateway 64.0.
Time of Update: 2018-12-07
前言MySQL
Time of Update: 2018-12-07
伺服器系統變數伺服器將維護許多表示其配置的系統變數。所有變數均有預設值。可以在命令列中或選項檔案設定選項在伺服器啟動時對它們進行設定。大多數可以在運行時使用SET語句來設定。mysqld伺服器維護兩種變數。全域變數影響伺服器的全域操作。會話變數影響具體用戶端串連相關操作。伺服器啟動時,將所有全域變數初始化為預設值。可以在選項檔案或命令列中指定的選項來更改這些預設值。伺服器啟動後,通過串連伺服器並執行SET
Time of Update: 2018-12-07
前言前面章節部分所分析的可擴充架構方案,基本上都是圍繞在資料庫自身來進行的,這樣是否會使我們在尋求擴充性之路的思維受到“禁錮”,無法更為寬廣的發散開來。這一章,我們就將跳出完全依靠資料庫自身來改善擴充性的問題,將資料服務擴充性的改善向資料庫之外的天地延伸! 可擴充設計的資料庫之外延伸資料庫主要就是為應用程式提供資料存取相應的服務,提高資料庫的擴充性,也是為了更好的提供資料存取服務能力,同時包括可靠性,高效性以及易用性。所以,我們最根本的目的就是讓資料層的儲存服務能力得到更好的擴充性,讓我們的投入
Time of Update: 2018-12-07
前言前面我們已經瞭解了MySQLQueryOptimizer的工作原理,學習了Query最佳化的基本原則和思路,理解了索引選擇的技巧,這一節我們將圍繞Query語句中使用非常頻繁,且隨時可能存在效能隱患的Join語句,繼續我們的Query最佳化之旅。 Join
Time of Update: 2018-12-07
SATASATA的全稱是Serial Advanced Technology Attachment,是由Intel、IBM、Dell、APT、Maxtor和Seagate公司共同提出的硬碟介面規範。SATA硬碟採用新的設計結構,資料轉送快,節省空間的,相對於IDE硬碟具有很多優勢: 1 .SATA硬碟比IDE硬碟傳輸速度高。目前SATA可以提供150MB/s的高峰傳輸速率。今後將達到300 MB/s和600 MB/s。到時我們將得到比IDE硬碟快近10倍的傳輸速率。 2.
Time of Update: 2018-12-07
在 bash 的作業環境中還有一個非常有用的功能,那就是萬用字元 (wildcard) ! 我們利用 bash 處理資料就更方便了!底下我們列出一些常用的萬用字元喔:符號意義*代表『 0 個到無窮多個』任一字元?代表『一定有一個』任一字元[ ]同樣代表『一定有一個在括弧內』的字元(非任一字元)。例如 [abcd] 代表『一定有一個字元, 可能是 a, b, c, d 這四個任何一個』[ - ]若有減號在中括弧內時,代表『在編碼順序內的所有字元』。例如 [0-9] 代表 0 到 9
Time of Update: 2018-12-07
引言cpu無端佔用高?應用程式響應慢?苦於沒有分析的工具?oprofile利用cpu硬體層面提供的效能計數器(performance counter),通過計數採樣,協助我們從進程、函數、代碼層面找出佔用cpu的"罪魁禍首"。下面我們通過執行個體,瞭解oprofile的具體使用方法。 常用命令使用oprofile進行cpu使用方式檢測,需要經過初始化、啟動檢測、匯出檢測資料、查看檢測結果等步驟,以下為常用的oprofile命令。初始化opcontrol --no-vmlinux :
Time of Update: 2018-12-07
引言有時我們需要對程式進行最佳化、減少程式回應時間。除了一段段地對代碼進行時間複雜度分析,我們還有更便捷的方法嗎?若能直接找到影響程式已耗用時間的函數調用,再有針對地對相關函數進行程式碼分析和最佳化,那相比漫無目的地看代碼,效率就高多了。將strace和pstack工具結合起來使用,就可以達到以上目的。strace跟蹤程式使用的底層系統調用,可輸出系統調用被執行的時間點以及各個調用耗時;pstack工具對指定PID的進程輸出函數調用棧。下面我們通過一個簡單的訊息收發程式,說明使用strace、p
Time of Update: 2018-12-07
前言在本章之前的所有部分都是介紹的整個系統中的軟體環境對系統效能的影響,這一節我們將從系統硬體環境來分析對資料庫系統的影響,並從資料庫伺服器主機的角度來做一些針對性的最佳化建議。任何一個系統的硬體環境都會對起效能起到非常關鍵的作用,這一點我想每一位讀者朋友都是非常清楚的。而資料庫應用系統內容中,由於資料庫自身的特點和在系統中的角色決定了他在整個系統中是最難以擴充的部分。所以在大多數環境下,資料庫伺服器主機(或者主機叢集)的效能在很大程度上決定了整個應用系統的效能。既然我們的資料庫主機資源如此重要
Time of Update: 2018-12-07
iptables命令可用於配置Linux的包過濾規則,常用於實現防火牆、NAT。咋一看iptables的配置很複雜,掌握規律後,其實用iptables完成指定任務並不難,下面我們通過具體執行個體,學習iptables的詳細用法。 1.刪除已有規則在新設定iptables規則時,我們一般先確保舊規則被清除,用以下命令清除舊規則:iptables -F(or iptables --flush) 2.設定chain策略對於filter
Time of Update: 2018-12-07
xss表示Cross Site
Time of Update: 2018-12-07
前言通過MySQLReplication功能所實現的擴充總是會受到資料庫大小的限制,一旦資料庫過於龐大,尤其是當寫入過於頻繁,很難由一台主機支撐的時候,我們還是會面臨到擴充瓶頸。這時候,我們就必須許找其他技術手段來解決這個瓶頸,那就是我們這一章所要介紹惡的資料切分技術。 何謂資料切分可能很多讀者朋友在網上或者雜誌上面都已經多次見到關於資料切分的相關文章了,只不過在有些文章中稱之為資料的Sharding。其實不管是稱之為資料的Sharding還是資料的切分,其概念都是一樣的。簡單來說,就是指通過某
Time of Update: 2018-12-07
前言本文主要是寫一些程式員通用的經典書籍,與具體程式設計語言無關,希望給初學者或者想深入的朋友一些建議,協助成長。以下的資料都是免登陸下載,而且都是free的。如果大家覺得資料好的話,推薦給周圍的朋友,讓更多的人少走彎路。 編程類《代碼大全》編程的百科全書,必讀。這也是一本完整的軟體構建手冊,涵蓋了軟體構建過程中的所有細節。它從軟體品質和編程思想等方面論述了軟體構建的各個問題,並詳細論述了緊跟潮流的新技術、高屋建瓴的觀點、通用的概念,還含有豐富而典型的程式樣本。 《演算法導論》深入討論各類演算法
Time of Update: 2018-12-07
子查詢文法SELECT ... FROM (subquery) name ...Hive只在FROM字句支援子查詢。子查詢必須給一個名字,因為每個表在FROM字句必須有一個名字。子查詢的查詢列表的列,必須有唯一的名字。子查詢的查詢列表,在外面的查詢是可用的,就像表的列。子查詢也可以一個UNION查詢運算式.Hive支援任意層次的子查詢。 簡單子查詢的例子:SELECT col FROM ( SELECT a+b AS col FROM t1) t2 包含UNION
Time of Update: 2018-12-07
今天, 又在公司內聽到大家爭論 Buffer 與 Cache的差異了, 雖然差不多1個月前, 我們就已經在群組裡面進行過激烈的爭論, 我在網上搜尋了下, buffer 與 Cache 區別, 找到下面這個連結, 給出的解釋比較接近為維基百科上的說法, 抄錄如下, 以為記.什麼是Cache? 什麼是Buffer?