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('code',$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) !