首页 » bug飞

drupal的批量删除api,entity_delete_multiple,已经被删除

  1. 请使用新的api
    $bookManager = \Drupal::service('book.manager');
    $entity = \Drupal::entityTypeManager()->getStorage('node');

    $context['message'] = t('Deleting %title', ['%title' => $queue->title]);
    $query = $entity->getQuery();
    //todo 如果pid不为空,按pid查,否则,按title查
    $id = $query
      ->condition('type', 'book')
      ->condition('title', $queue->title)
      ->execute();

    // Load multiples or single item load($id) https://drupalbook.org/drupal/9111-working-entity-fields-programmatically
    $books = $entity->loadMultiple($id);

    if (!empty($books)) {
      foreach ($books as $book) {
        if ($bookManager->loadBookLink($book->id())) {
          $bookManager->deleteFromBook($book->id());
        }

      }
      $entity->delete($books);
    }

vps 只有1g,mysql8占用200多,原因是mysql8 默认开启了performance_schema 内存监控程序。

1.查询内存占用(前提是开启了performance_schema )

 SELECT SUBSTRING_INDEX(event_name,'/',2) AS
       code_area, FORMAT_BYTES(SUM(current_alloc))
       AS current_alloc
       FROM sys.x$memory_global_by_current_bytes
       GROUP BY SUBSTRING_INDEX(event_name,'/',2)
       ORDER BY SUM(current_alloc) DESC;

返回如下:

+---------------------------+---------------+

| code_area                 | current_alloc |

+---------------------------+---------------+

| memory/performance_schema | 116.20 MiB    |

| memory/innodb             | 72.89 MiB     |

| memory/mysys              | 8.54 MiB      |

| memory/sql                | 7.77 MiB      |

| memory/temptable          | 1.00 MiB      |

| memory/mysqld_openssl     | 134.68 KiB    |

| memory/mysqlx             | 2.62 KiB      |

| memory/myisam             |  696 bytes    |

| memory/csv                |   88 bytes    |

| memory/blackhole          |   88 bytes    |

| memory/vio                |   16 bytes    |

+---------------------------+---------------+

2.宝塔---已安装软件---mysql---配置my.cnf

[mysqld]
performance_schema = OFF

3.注意关掉这个监控程序,第1步的操作会返回空。

打开宝塔面板---网站---设置--伪静态,填入下面内容


if (-f $request_filename/index.html){
    rewrite (.*) $1/index.html break;
}
if (-f $request_filename/index.php){
    rewrite (.*) $1/index.php;
}
if (!-e $request_filename){
    rewrite (.*) /index.php;
}