基本上,我的游戏有超过 300,000 的用户,并且有数百万的“口袋妖怪”。 我正在考虑为外键使用一个整数而不是一-6ren">
gpt4 book ai didi

mysql - 如何更快地执行此 PHP 脚本更新字段?

转载 作者:太空宇宙 更新时间:2023-11-03 12:27:14 24 4
gpt4 key购买 nike

<?
include 'database.php';

$user1 = mysql_query("SELECT id,username FROM `users` ORDER BY `id` ASC");


while($user = mysql_fetch_object($user1)) {
mysql_query("UPDATE `pokemon` SET `user`=$user->id WHERE `owner`='$user->username'");
}

?>

基本上,我的游戏有超过 300,000 的用户,并且有数百万的“口袋妖怪”。

我正在考虑为外键使用一个整数而不是一个字符串,所以我创建了这个小脚本来为我做这件事。

不幸的是,它在过去一个小时内似乎只更新了 1000 个用户,因此我需要 300 个小时才能完成整个过程。有没有办法让这个脚本更有效率?

user 是新的唯一标识符,而 owner 是旧的唯一标识符(外键)。

我的方法是否有替代解决方案需要不到 3-4 小时的时间?我确定一定有一些不错的小 SQL 查询我可以通过 phpMyAdmin 执行而不是使用此代码。

感谢所有的帮助,真的很感激,我一定会尽可能返回你的帮助。

编辑:感谢您教我这项新技术,我会尝试一下并更新我的主题。

最佳答案

我认为带有 INNER JOINUPDATE 查询会比循环更快

UPDATE `pokemon` a 
INNER JOIN `users` b
ON a.`owner` = b.`username`
SET a.`user`= b.`id`

关于mysql - 如何更快地执行此 PHP 脚本更新字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17009213/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com