2011年7月27日星期三

1億條數據在PHP中實現Mysql數據庫分表100張

1億條數據在PHP中實現Mysql數據庫分表100張

http://www.inspirr.com

當數據量猛增的時候,大家都會選擇庫表散列等等方式去優化數據讀寫速度。筆者做了一個簡單的嘗試,1億條數據,分100張表。具體實現過程如下。

首先創建100張表:

英文代碼

$i=0;
while{
echo "$newNumber \r\n";
$sql="CREATE TABLE `code_".$i."` NOT NULL,
`create_time` int unsigned NOT NULL,
PRIMARY KEY ,
) ENGINE=MyISAM DEFAULT CHARSET=utf8";
mysql_query;
$i++;

下面說一下我的分表規則,full_code作為主鍵,我們對full_code做hash

函數如下:

英文代碼

$table_name=get_hash_table;

function get_hash_table{
$hash = sprintf);
echo $hash;
$hash1 = intval);
return $table."_".$hash1;
}

這樣插入數據前通過get_hash_table獲取數據存放的表名。

最后我們使用merge存儲引擎來實現一張完整的code表

CREATE TABLE IF NOT EXISTS `code` NOT NULL,
`create_time` int unsigned NOT NULL,
INDEX
) TYPE=MERGE UNION= INSERT_METHOD=LAST ;

這樣我們通過select * from code就可以得到所有的full_code數據了。


Tag: 設計公司 | 網頁設計公司 | 廣告公司 | 網站設計 | 平面設計 | 互動媒體 | 網頁設計 | Web design | Website design | design house | 媒體公司 | Iphone app | 程式設計 | Flash 網頁 | Flash game | 動畫設計 | 後期製作 | 網上商店 | 網上宣傳 | 網頁服務 |

没有评论:

发表评论