我有一个已提交的iphone应用程序,它会对数据库进行大量调用以获取数据。数据非常小。我听说过my.cnf文件,特别是max_connections和max_user_connections 以下是my.cnf文件中最重要的部分,用于调整:
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
# This replaces the startup script and checks MyISAM tables if needed
# the first time they are touched
myisam-recover = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
#
# * Query Cache Configuration
#
query_cache_limit = 1M
query_cache_size = 16M
#
默认情况下,您可以看到最大连接已被注释掉。这是否意味着连接数量没有限制?当用户尝试使用我的应用程序并达到最大连接时会发生什么?他们是立即收到错误还是等待找到连接?这与max_user_connections有何不同?对不起所有的问题,我不太了解服务器配置。服务器是一个linode 512.
答案 0 :(得分:0)
max_connections
设置确定最大客户端连接数。如果所有连接都已用完,则连接的下一个客户端将收到错误Too many connections。 default value is 100,如果您将此选项注释掉,则为100。
设置max_user_connections
是每个用户的最大连接数。因此,如果将其设置为10,则用户Bob在收到与上述相同的错误之前只能有10个连接,而max_connections是每个人的总数。如果未指定任何值,则设置max_user_connections
默认为与max_connections相同的值。
当您收到错误时,您将希望正常处理它。您可以尝试重新连接,也可以给用户一个友好的错误消息,例如“系统忙。稍后再试。”
在我们的生产服务器上,我们将max_connections
设置为1024
。你的旅费可能会改变。如果查询重量轻,您可以增加数量。我猜测1024可能是个好地方。只需确保您的应用程序服务器正常处理错误并随时调整数量。