0

我有一个已提交的 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。

4

1 回答 1

0

max_connections设置确定最大客户端连接数。如果所有连接都用完,下一个连接的客户端将收到错误Too many connections默认值为 100 ,因此如果您将此选项注释掉,它将为 100。

该设置max_user_connections是每个用户的最大连接数。因此,如果将其设置为 10,则用户 Bob 在收到与上述相同的错误之前只能有 10 个连接,而 max_connections 是每个人的总数。如果未指定值,则该设置max_user_connections默认为与 max_connections 相同的值。

当你收到错误时,你会想要优雅地处理它。您可以尝试重新连接,也可以给用户一个友好的错误消息,例如“系统忙。稍后再试”。

在我们的生产服务器上,我们max_connections设置为1024. 你的旅费可能会改变。如果查询是轻量级的,您可以增加数量。我猜 1024 可能是一个不错的起点。只需确保您的应用程序服务器优雅地处理错误并随时调整数字即可。

于 2012-03-08T18:12:57.473 回答