原创 SQL慢查詢分析,原因及優化

問題描述 一個用戶反映線上一個SQL語句執行時間慢得無法接受。SQL語句看上去很簡單(本文描述中修改了表名和字段名): SELECT count(*) FROM a JOIN b ON a.`S` = b.`S` WHERE

原创 redis幾種啓動方式

Part I. 直接啓動 下載 官網下載 安裝 tar zxvf redis-2.8.9.tar.gz cd redis-2.8.9 #直接make 編譯 make #可使用root用戶執行`make install`,將可執行文

原创 redis的pipeline測試分析

先上程序: <?php $redis = new Redis(); $redis->connect('127.0.0.1', 6379); $starttime = explode(" ",microtime()); $pipe =

原创 php共享內存shmop初探

先上讀寫程序: <?php /** * SHMOP共享內存操作示例 * @author monkee **/ $key = 0x4337b700; $size = 4096; $shmid = @shmop_open($key,

原创 併發模型歸納

市面上幾種常用的併發模型: 1.事件驅動 select,poll,epoll nginx高系能採用的就是epoll事件驅動模型 2.多線程 3.多進程 4.多協程 美團雲分佈式存儲模塊結構圖:

原创 防範sql注入

1、關於SQL注入 互聯網很危險,信息及數據安全很重要,SQL注入是最常見的入侵手段之一,其技術門檻低、成本低、收益大,頗受各層次的黑客們所青睞。 一般來說,SQL注入的手法是利用各種機會將惡意SQL代碼添加到程序參數中,並最終被服

原创 一個例子與InnoDB索引的幾個概念

1、一個簡單的sql語句問題     假設當前我們有一個表記錄用戶信息,結構如下:     a)      表結構 CREATE TABLE `u` (   `id` int(11) NOT NULL DEFAULT ‘0′,

原创 sys和cc攻擊防範分享

調整系統參數擋攻擊 第一個參數tcp_synack_retries = 0是關鍵,表示迴應第二個握手包(SYN+ACK包)給客戶端IP後,如果收不到第三次握手包(ACK包)後,不進行重試,加快回收“半連接”,不要耗光資源。 不修改這

原创 mysql數據類型與索引調優

varcha比固定長度佔用更少存儲空間,只佔用需要空間,但是需要1字節保存長度 更小通常更好 簡單就好,避免null 確定類型 使用enum代替字符串類型 innnodb存儲引擎 事務性 外鍵 行級鎖 多版本 按照主鍵聚集 所有索引包含

原创 數據庫同步中間件

背景 早期,阿里巴巴B2B公司因爲存在杭州和美國雙機房部署,存在跨機房同步的業務需求。不過早期的數據庫同步業務,主要是基於trigger的方式獲取增量變更,不過從2010年開始,阿里系公司開始逐步的嘗試基於數據庫的日誌解析,獲取增量變

原创 線上環境到底要不要開啓query cache

Query Cache(查詢緩存,以下簡稱QC)存儲SELECT語句及其產生的數據結果,特別適用於:頻繁提交同一個語句,並且該表數據變化不是很頻繁的場景,例如一些靜態頁面,或者頁面中的某塊不經常發生變化的信息。QC有可能會從InnoD

原创 python類初探

直接上例子: import os import string class C(object):    def __init__(self):        print "c class" class B(object):     def

原创 ubuntu升級php版本

由於5.3版本不支持[]數組簡單聲明,故升級版本. apt-get install python-software-properties apt-get install -y ppa-purge add-apt-repositor

原创 併發過高導致庫存買超情況

生產環境中遇到併發過高,導致庫存買超的情況。 可以通過以下幾種情況解決: 1.使用數據庫鎖機制防止併發 方法1 select for update; update set stock = stock - x; insert into or

原创 redis make test tcl 8.5 or newer in order to run the Redis test

[root@10-10-84-36 redis-3.0.7]# make test cd src && make test make[1]: Ent