原创 [譯文]greenlet:輕量級併發程序

原文:https://greenlet.readthedocs.io/en/latest/ 博客地址:http://www.jianshu.com/u/5a327aab786a 背景 greenlet包是Stackless的衍生產

原创 哈希表算法

概述   Hash,一般翻譯做“散列”,也有直接音譯爲“哈希”的,就是把任意長度的輸入(又叫做預映射, pre-image),通過散列算法,變換成固定長度的輸出,該輸出就是散列值。這種轉換是一種壓縮映射,也就是,散列值的空間通常遠

原创 (5)mysql優化之MyISAM表鎖

概述   MyISAM存儲引擎只支持表鎖,mysql的表鎖有兩種模式:讀鎖和寫鎖。他們的兼容關係是(對myisam的讀操作,不會阻塞其他用戶對同一表的讀請求,但會阻塞對同一表的寫操作*)和(對myisam的寫操作,則會阻塞其他用戶

原创 二叉排序樹

概述   二叉排序樹又稱“二叉查找樹”、“二叉搜索樹”。二叉排序樹:或者是一棵空樹,或者是具有下列性質的二叉樹: 若它的左子樹不空,則左子樹上所有結點的值均小於它的根結點的值; 若它的右子樹不空,則右子樹上所有結點的值均大於它的

原创 歸併排序

概述   歸併排序-顧名思義通過遞歸和合併的方式排序無序數列。歸併排序是基於一種被稱爲“分治”(divide and conquer)的策略。 歸併排序先分解無序數列到每一個無效數列爲一個元素時候,該無序數列就是有序數列,然後

原创 選擇排序

概述   選擇排序:比如在一個長度爲N的無序數組中,在第一趟遍歷N個數據,找出其中最小的數值與第一個元素交換,第二趟遍歷剩下的N-1個數據,找出其中最小的數值與第二個元素交換……第N-1趟遍歷剩下的2個數據,找出其中最小的數值與第

原创 PHP無限極分類

概述   在實際工作中,經常要用到無限極分類。如導航表等等。到網上一搜php無限極分類,很多,但好多都是一個,並且,寫的很亂,代碼很多,那些都不靠譜,還是自己搗鼓搗鼓無限極分類了。下面介紹兩種無限極分類:遞歸,使用引用 數據準備

原创 (2)mysql優化之使用索引優化查詢

概述   索引是數據庫優化中最常用的也是最重要的手段之一。該篇看看索引的分類,使用場景,不能使用的場景等。 索引分類   索引是在mysql存儲引擎中實現的,而不是在服務器層實現的。索引每種存儲引擎的索引不一定相同。mysql支持

原创 PHP session垃圾回收機制

概述   由於PHP的工作機制,它並沒有一個daemon線程,來定時地掃描session信息並判斷其是否失效。當一個有效請求發生時,PHP會根據全局變量 session.gc_probability/session.gc_divi

原创 (4)mysql優化之數據庫表設計優化

概述 在數據庫設計過程中,用戶可能會經常遇到這樣的問題:1.表裏面的字段到底該設置多長合適?2.是否應該把所有表都按照第三範式來設計? 優化表的數據類型 1.語法 表的數據類型參見鏈接: http://blog.csdn.net

原创 (1)mysql優化之sql性能問題定位

概述 我們面對一個問題的時候,首先是發現問題,然後纔是解決問題。在這篇文章中,主要解決如何定位問題。 解決方法 1.通過show status瞭解各種sql執行頻率 show status [like 'com_%']; Com_

原创 冒泡排序及快速排序

概述   冒泡排序法的基本思想:(以升序爲例)含有n個元素的數組原則上要進行n-1次排序。對於每一躺的排序,從第一個數開始,依次比較前一個數與後一個數的大小。如果前一個數比後一個數大,則進行交換。這樣一輪過後,最大的數將會出現稱爲

原创 kmp字符串模式匹配算法

概述   kmp算法我覺得有兩個關鍵點:1.計算模式字符串的部分匹配表(這時候,自己跟自己比較)2.匹配主串時候,主串字符只遍歷一遍,匹配時候,根據模式串的部分匹配表計算模式串應該移動的位置。kmp算法時間複雜度爲O(m+n);下

原创 折半查找算法

概述   二分查找法主要是解決在“一堆數中找出指定的數”這類問題。而想要應用二分查找法,這“一堆數”必須有一下特徵: 存儲在數組中 有序排列 所以如果是用鏈表存儲的,就無法在其上應用二分查找法了。(曽在面試被問二分查找法可以什

原创 一篇文章帶你瞭解監控告警設計

“哎哎,XX,很多客服反饋這個業務掛了怎麼回事,趕緊看看。” 正在安安靜靜寫代碼的你心頭一顫,出問題了。趕緊打開業務鏈接看看,真出問題了,怎麼辦,怎麼查問題?一臉悶逼。 據說現代醫學始於聽診器的發明,醫生憑藉該物收集放大從各個器官發