Поддержка Проблемы и решения PHP Fatal error: Allowed memory size при выборке

  • Добрый день,

    на сервере PHP 7.3
    Memory 256
    Wordpress 5.1

    Ошибка в логах:

    
    [06-Mar-2019 16:43:09 UTC] PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 20480 bytes) in /home/wp-includes/functions.php on line 5767
    [06-Mar-2019 16:43:09 UTC] PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 32768 bytes) in /home/wp-content/plugins/woocommerce/includes/log-handlers/class-wc-log-handler-file.php on line 431
    

    сам код:

    
     $url = get_site_url();
     
     $all = $wpdb->get_var("SELECT COUNT(*) FROM {$wpdb->posts} WHERE post_status IN ('publish', 'future', 'private')");
     
     
     $posts_per_page = 500;
     $start = 0;
     $x = ceil($all/$posts_per_page);
    
     
     for ($i = 0; $i<= $x; $i++){
     
     	$posts = $wpdb->get_results("SELECT ID, guid FROM {$wpdb->posts} WHERE post_status IN ('publish', 'future', 'private') ORDER BY ID ASC LIMIT $start, $posts_per_page");
     		foreach ( (array) $posts as $post ) {
    
      $wpdb->insert( 
      	$table_name, 
      	array( 
      		'line_id' => $post->ID, 
      		//'name' => $post->post_name, 
      		'guid' => str_replace($url, "", get_permalink($post->ID))."/",
      		'type' => 'post'
      	)
    
      );
     		}
     		gc_collect_cycles();
     		
     		$start = ($i+1)*$posts_per_page+1;
     }
    

    как и что можно оптимизировать чтобы не жрало так память?

    • Тема изменена 1 год, 7 месяцев назад пользователем BArS.
  • Тема «PHP Fatal error: Allowed memory size при выборке» закрыта для новых ответов.