gpt4 book ai didi

php - 选择(相对)较大的数据库表

转载 作者:行者123 更新时间:2023-11-29 12:20:07 25 4
gpt4 key购买 nike

我正在使用 Google CloudSQL 并具有以下简单代码:

<?php
$db = new pdo ( 'mysql:unix_socket=/cloudsql/<appid:id>;dbname=<database_name>', 'root', '' );
$db->setAttribute ( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$stmt = $db->prepare ( "SELECT column1, column2, column3, column4, column5 FROM table" );
$stmt->execute ();
$returned = $stmt->fetchAll ( PDO::FETCH_ASSOC );
echo json_encode ( $returned );
?>

但是由于数据库表太大(接近150,000行),似乎没有正确处理。我不断收到此错误消息:

Error: Server Error
The server encountered an error and could not complete your request.
Please try again in 30 seconds.

我知道问题在于大小,因为只要我 SELECT 仅 3 列而不是 5 列,它就可以正常显示。在我看来,15万行并不算太多;但它是我创建的最大的表,所以我不知道我错过了什么。

我应该做什么?

编辑:

我还尝试将层从 D0 (125 MB) 升级到 D1 (512 MB),但这也没有帮助。

最佳答案

当您超出 App Engine 实例类的内存限制时,会出现此警告。我假设您位于实例类“B1”中,因为 150000 行数据超出了该范围。您可以通过在 app.yaml 文件中设置实例类的值来更改实例类。我建议浏览this documentation要选择适合您需求的实例类,B1 和 F1 以上的任何内容都应该为您提供足够的内存。另请确保通过设置 $db = null;

关闭连接

关于php - 选择(相对)较大的数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29150942/

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