在Debian系统上优化PHP与数据库的连接,可以从多个方面入手,包括配置PHP和数据库服务器、使用持久连接、优化查询语句、调整内存和超时设置等。以下是一些具体的步骤和建议:
确保你使用的是最新版本的PHP,因为新版本通常包含性能改进和安全修复。
sudo apt update
sudo apt install php7.4-fpm # 或者你需要的PHP版本
编辑/etc/php/7.4/fpm/pool.d/www.conf
文件(根据你的PHP版本调整路径),进行以下优化:
; 增加进程数
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
; 增加请求队列长度
request_terminate_timeout = 0
rlimit_files = 1024
OPcache可以显著提高PHP脚本的执行速度。编辑/etc/php/7.4/cli/php.ini
或/etc/php/7.4/fpm/php.ini
文件,启用并配置OPcache:
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
确保你使用的是最新版本的MySQL或PostgreSQL,因为新版本通常包含性能改进和bug修复。
sudo apt update
sudo apt install mysql-server # 或者 postgresql
编辑数据库配置文件(如/etc/mysql/my.cnf
或/etc/postgresql/12/main/postgresql.conf
),进行以下优化:
MySQL:
[mysqld]
innodb_buffer_pool_size = 70% of total RAM
innodb_log_file_size = 256M
innodb_flush_log_at_trx_commit = 2
query_cache_size = 64M
query_cache_type = 1
PostgreSQL:
shared_buffers = 25% of total RAM
work_mem = 4MB
maintenance_work_mem = 512MB
effective_cache_size = 75% of total RAM
使用EXPLAIN分析查询语句,确保它们是高效的。避免使用SELECT *,尽量使用索引。
持久连接可以减少每次请求时建立和关闭连接的开销。在PHP中,可以通过设置p:1
来启用持久连接。
$mysqli = new mysqli('p:localhost', 'user', 'password', 'database');
根据你的应用需求,调整PHP和数据库的内存和超时设置。
PHP:
memory_limit = 256M
max_execution_time = 30
MySQL:
wait_timeout = 28800
interactive_timeout = 28800
定期监控PHP和数据库的性能,查看日志文件以发现潜在问题。
PHP:
tail -f /var/log/php7.4-fpm.log
MySQL:
tail -f /var/log/mysql/error.log
通过以上步骤,你可以显著提高Debian系统上PHP与数据库连接的性能。记得在每次更改配置后重启相应的服务以使更改生效。