Heim  >  Artikel  >  Backend-Entwicklung  >  Implementieren Sie 100 MySQL-Datenbanktabellen in PHP mit 100 Millionen Daten

Implementieren Sie 100 MySQL-Datenbanktabellen in PHP mit 100 Millionen Daten

PHP中文网
PHP中文网Original
2016-08-08 09:19:441133Durchsuche

Wenn die Datenmenge stark zunimmt, wird sich jeder für Datenbanktabellen-Hashing und andere Methoden entscheiden, um die Lese- und Schreibgeschwindigkeit von Daten zu optimieren. Der Autor machte einen einfachen Versuch, indem er 100 Millionen Daten in 100 Tabellen aufteilte. Der spezifische Implementierungsprozess ist wie folgt:

Erstellen Sie zunächst 100 Tabellen:

$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++;

Lassen Sie uns über meine Tabellenaufteilungsregeln sprechen, die als Primärschlüssel verwendet werden.

Die Funktion lautet wie folgt:

$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;
}

Ermitteln Sie auf diese Weise den Tabellennamen, in dem die Daten gespeichert sind, über get_hash_table, bevor Sie Daten einfügen.

Schließlich verwenden wir die Merge-Storage-Engine, um eine vollständige Codetabelle zu implementieren

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 ;

Auf diese Weise können wir alle vollständigen Codedaten erhalten, indem wir * aus dem Code auswählen.


Das Obige ist der Inhalt der Implementierung von 100 MySQL-Datenbanktabellen in PHP mit 100 Millionen Daten. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.org). .php.cn) !


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn