gpt4 book ai didi

php - 超过 600 个连接的 MySQL

转载 作者:行者123 更新时间:2023-11-29 00:59:02 28 4
gpt4 key购买 nike

我有数据库服务器和其他 4 个客户端服务器。
一次来自客户端服务器的连接数不超过 600。
它有很多慢查询,这是由于表锁定。
我已将其中一个表更改为 InnoDB,它获得更多更新和插入查询。

请帮我优化数据库。我有一个专用的数据库服务器。

以下是my.cnf设置。

[mysqld]  
tmpdir=/tmp
open_files_limit=33628
log-slow-queries=/slow-query.txt
long_query_time=1
log-queries-not-using-indexes=1
concurrent_insert=2


old_passwords=1
datadir=/var/lib/mysql

safe-show-database
tmp_table_size = 128M
max_heap_table_size = 128M
query_cache_limit=8M
query_cache_size=128M ## 32MB for every 1GB of RAM
query_cache_type=1
max_user_connections=800
max_connections=800
collation_server=utf8_unicode_ci
character_set_server=utf8


delayed_insert_timeout=40

interactive_timeout=10
wait_timeout=3600
connect_timeout=20
thread_cache_size=128
key_buffer=128M ## 32MB for every 1GB of RAM
join_buffer=1M
max_connect_errors=20
max_allowed_packet=16M
table_cache=400
record_buffer=1M
sort_buffer_size=4M ## 1MB for every 1GB of RAM
read_buffer_size=4M ## 1MB for every 1GB of RAM
read_rnd_buffer_size=4M ## 1MB for every 1GB of RAM
thread_concurrency=8 ## Number of CPUs x 2
myisam_sort_buffer_size=32M
server-id=1

[mysql.server]
user=mysql


[safe_mysqld]
open_files_limit=33628
err-log=/var/log/mysqld.log
pid-file=/var/lib/mysql/mysql.pid

目前我使用的是非持久连接,持久连接可以提高我的性能吗?

最佳答案

一种解决方案是为您的所有读取操作设置额外的从数据库服务器,并且只写入您的主服务器。

但是从它的声音来看,对于所有导致查询缓慢的表,从 myisam 迁移到 innodb,并构建适当的索引,以便您的查询不会花费这么长时间,您可能会受益最大。

就innodb而言,为您的缓冲池提供大量内存可显着提高性能:

# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 6144M

但真正优化配置并不能神奇地解决查询级别的问题。

关于php - 超过 600 个连接的 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4632567/

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