![php 执行 MySQL 查询时适用哪些内存限制](https://linux22.com/image/786130/php%20%E6%89%A7%E8%A1%8C%20MySQL%20%E6%9F%A5%E8%AF%A2%E6%97%B6%E9%80%82%E7%94%A8%E5%93%AA%E4%BA%9B%E5%86%85%E5%AD%98%E9%99%90%E5%88%B6.png)
如果我将 php 作为 FPM 运行,我可以在 php.ini
或中设置内存限制.user.ini
。PHP 可以执行 MySQL 查询,并且我可以在 中设置内存限制,/etc/my.cnf
例如 innodb 缓冲池。如果 PHP 运行查询,则适用哪个内存限制?
答案1
两者是独立的。但是,假设您在同一台机器上运行它们(这不是必需的),它们必须共享可用的 RAM。
php.ini
有一个上限为了每个实例PHP。通常,Web 服务器会启动许多实例。默认设置通常就足够了。如果您有一些对于需要更多内存的 PHP 页面,您可以在可能需要更多内存的任何页面的开头执行 set_ini。(例如:图像处理)我不会更改限制,直到我遇到来自 PHP 的“内存不足”消息。
innodb_buffer_pool_size
是个主要的MySQL 可调。首先,将其设置为可用的内存在允许其他应用程序合理使用后才会释放。我意识到这很模糊,但它通常有效。