ホームページ  >  記事  >  バックエンド開発  >  1億個のデータを含む100個のMysqlデータベーステーブルをPHPで実装する

1億個のデータを含む100個のMysqlデータベーステーブルをPHPで実装する

PHP中文网
PHP中文网オリジナル
2016-08-08 09:19:441134ブラウズ

データ量が急激に増加すると、誰もがデータの読み取りと書き込みの速度を最適化するためにデータベース テーブルのハッシュやその他の方法を選択します。著者は、1 億個のデータを 100 のテーブルに分割するという単純な試みを行いました。具体的な実装プロセスは次のとおりです。

最初に 100 個のテーブルを作成します。

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

テーブル分割ルールについて話しましょう。 full_code を主キーとして使用します。関数は次のとおりです。

$table_name=get_hash_table(&#39;code&#39;,$full_code);
function get_hash_table($table,$code,$s=100){
$hash = sprintf("%u", crc32($code));
echo $hash;
$hash1 = intval(fmod($hash, $s));
 return $table."_".$hash1;
}

Getデータを挿入する前に get_hash_table を介してデータを取得する。

最後に、マージ ストレージ エンジンを使用して完全なコード テーブルを実装します

1 CREATE TABLE IF NOT EXISTS `code` (  
2 `full_code` char(10) NOT NULL,3 `create_time` int(10) unsigned NOT NULL,4 INDEX(full_code)  
5 ) TYPE=MERGE UNION=(code_0,code_1,code_2.......) INSERT_METHOD=LAST ;

このようにして、コードから * を選択することで、すべての full_code データを取得できます。


上記は、1 億個のデータを含む 100 個の Mysql データベース テーブルを PHP で実装する内容です。その他の関連内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。