php - mysql每次查询结束是否需要close()它
伊谢尔伦
伊谢尔伦 2017-04-10 18:08:42
[PHP讨论组]

在设计流程上,每个页面都要从多张数据表当中查询多个数据显示出来,对于访问量很小的网站来说数据库查询压力和负载基本不用太多考虑,但是如果访问量过大的话,就必须考虑这个问题了,目前我的疑问有这么几个方面:

  1. mysql数据库同时连接数量默认是限制多少,对于同时在线过万的连接请求,如何优化?

  2. mysql的执行语句结束后,是否必须执行关闭连接?

  3. 如果同时分别用多个function()查询多个数据表,每个function结束里面是不是也要添加close()语句?

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(4)
高洛峰

1.最大连接数是设置里max_connect_errors这一条的。
mysql同时读取的数据大小和内存有关
table_cache和索引的建立可以有一定的优化作用
2.不是必须要关,他会自动回收资源的。较大的系统要减少资源耗费的话,那就关掉吧。
3.每个线程都需要close

迷茫

1 默认连接这个根据版本不同而不同,大到200-500,这个是用户最大连接数,还有个全局最大连接数。
2 优化概念太大了,这个根业务和引擎有关,硬件的话,大内存加固态必须的。

3 每次执行完是否关闭,看业务吧,如果长连接多,可以不用关,超时时间后会自动回收,默认八小时

大家讲道理
  • 第一个问题:异步写/读缓存

  • 第二三个问题:建立一次连接的成本比较高,能复用尽量复用

伊谢尔伦

要看你的应用是什么,如果是cli环境下单进程长时间运行worker类型人物,那么可以不关闭,节省反复连接数据库的时间。

web应用的话,每一次请求结束都会自动回收资源,也不必关闭。

只有多线程,长时间,高并发都满足的情况下才需要手动关闭,就像写c语言释放内存一样。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号