我需要用 PHP 函数生成的随机 SHA-1 哈希值填充 MySQL 表。我试图通过将其拆分为 10000 个块来优化插入。我的问题是:以下方法有效吗?这是代码。
//MySQL server connection routines are above this point
if ($select_db) {
$time_start = microtime(true);
//query
$query = 'INSERT INTO sha1_hash (sha1_hash) VALUES ';
for ($i=1; $i<1000001; $i++) {
$query .= "('".sha1(genRandomString(8))."'),";
$count++;
if ($count ==10000) {
//result
$result = mysql_query(rtrim($query,',')) or die ('Query error:'.mysql_error());
if ($result) mysql_free_result($result);
$count = 0;
}
}
$time_end = microtime(true);
echo '<br/>'. ($time_end - $time_start);
}
//function to generate random string
function genRandomString($length)
{
$charset='abcdefghijklmnopqrstuvwxyz0123456789';
$count = strlen($charset);
while ($length--) {
$str .= $charset[mt_rand(0, $count-1)];
}
return $str;
}
编辑:$time_start
and$time_end
变量仅用于性能测试目的。MySQL表也只有两个字段:ID int(11) UNSIGNED NOT NULL AUTO_INCREMENT
和sha1_hash varchar(48) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
,引擎是MyISAM
EDIT2:计算机硬件观点与问题无关。