php - 在mysql中选择大量插入

标签 php mysql

我有一个问题,所以我的项目 10 数据库中有。每个数据库都有表 members。在每个表 members 中,我有 200 万行,所以在 10 个数据库中大约有 2000 万行。我试过这样的:

foreach ($aDataBases as $database) {
    $sSql = sprintf('SELECT nom,prenom,naiss FROM `%s`', $sTableName);
    $rResult = Mysqli::query($sSql, $database);
    while ($aRecord = $rResult->fetch_array(MYSQLI_ASSOC))
    {
        $aUsers['lastName']     = $aRecord['name'];
        $aUsers['firstName']    = $aRecord['f_name'];
        $aUsers['birthDate']    = $aRecord['birth'];
        $aTotalUsers[] = $aUsers;
    }
}

运行时出现错误 Allowed memory size of 134217728 bytes exhausted。例如,如果我输入 select LIMIT 100 就完美了。你能帮帮我吗?

最佳答案

只需将您的代码放入一个循环中,然后进行 SQL 调用,比如说,每次调用 1000 个条目。循环直到打印完所有行。有些人会告诉你只是为了提高你的内存极限,但总有一个你无法通过的物理极限。

我不会为您编写代码,因为您是一名 PHP 程序员并且您明白了。不过,这是伪代码:

base = 0
while (rows = getrows(base,1000)) 
  foreach row in rows
     print row
  base = base + 1000

关于php - 在mysql中选择大量插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33952970/

相关文章:

php - 代码点火器 : $this->db->_error_message() message returns NULL

mysql - 选择促销价

php - 结合单个字符串php mysql

php - 无法加入 codeigniter

php - 使用 PHP 以 AES-256 加密文件的最佳方法是什么?

PHP 编译错误 : "Cannot use empty array elements in arrays"

php - 有人可以帮忙解决 MYSQL 错误消息吗?

php - 建立数据库连接时出错 - WP 主机更改了密码

php - PHP中的日期到日期转换

php - OO PHP 和 AJAX 表单验证