我正在创建一个包含select元素的网页,这些元素由AJAX请求动态填充。
在某些事件中,select元素向脚本发出请求,该脚本在执行时建立数据库连接,查询数据库并使用接收到的数据进行响应,然后填充select元素。每个select元素在不同的事件中发出单独的请求。
在这种情况下,多个数据库连接是一个坏主意,有没有办法避免它们?我正在使用PHP和MySQL。
答案 0 :(得分:2)
多重连接不会造成任何伤害。根据您的网络服务器和数据库类型,它可能会有所不同,但默认的最大连接数为151,您可以看到here。如果超过此数字,您将收到Too many connections
错误,这意味着其他客户端正在使用所有可用连接。
允许的连接数由 max_connections系统变量。默认值为151以进行改进 MySQL与Apache Web服务器一起使用时的性能。 (以前,默认值为100.)如果您需要支持更多 连接,你应该为这个变量设置一个更大的值。
如果您进行了一次正确的连接以获取并返回数据,那么这应该在几毫秒内完成,因此很可能会有151个并发打开的连接都在处理查询。
所以不..这不是问题。
答案 1 :(得分:0)
如果您每页或每次只提出几个请求,那么这不会过于昂贵。如果它是一个非常繁忙的页面或站点,那么建立一个连接池并在会话之间共享。
有一件事:从您的描述中可以看出,您正在让页面动态生成SQL。这听起来像注射攻击的食谱。确保在应用之前清理AJAX。