php - 如何优化 PHP 代码以上传 SQL 转储

标签 php mysql optimization upload

我正在使用下面的代码来创建和迁移表,虽然它可以运行,但速度非常慢。大约需要 10 分钟完成创建大约 250 个表并迁移数据。转储的总文件大小约为 1 Mb。请注意,这是在 localhost 上,部署到网络不可靠的服务器时,恐怕需要 5 倍的时间。

能否优化此代码以使其在大约 30 秒内运行?

function uploadSQL ( $myDbName ) {

        $host = "localhost";
        $uname = "username";
        $pass = "password";
        $database = $myDbName; 
        $conn = new mysqli($host, $uname, $pass, $database);
        $filename = 'db.sql'; 

        $op_data = '';
        $lines = file($filename);
        foreach ($lines as $line)
        {
            if (substr($line, 0, 2) == '--' || $line == '')
            {
                continue;
            }
            $op_data .= $line;
            if (substr(trim($line), -1, 1) == ';')
            {
                $conn->query($op_data);
                $op_data = '';
            }
        }
        echo "Table Created Inside " . $database . " Database.......";

    }

最佳答案

您可以使用 cron job 自动完成此过程而无需等待。有时此过程因 PHP 执行超时而失败。

要增加 php 中的执行超时,您需要更改 php.ini 中的一些设置:

max_execution_time = 60
; also, higher if you must - sets the maximum time in seconds

关于php - 如何优化 PHP 代码以上传 SQL 转储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52118962/

相关文章:

php - 使用 php 将数据插入 MySQL 数据库

php - 选择字段为空或使用查询生成器 Yii 的数据

sql - 从表中动态删除所有空列

php - Laravel 中如何从数据库获取产品 ID

python - 为什么我的优化求解器在 docker 中运行速度较慢?

java - 带有最终变量的 Android 内联监听器

php - 使用预准备语句将数据插入数据库时​​出错

php - PHP验证十进制数字并转换为美国货币格式

php - 试图获得小于使用 pdo 的值

algorithm - 找到最小正值