Thi*_*key 16 mysql database-design mysql-5.5
在 MySQL 中打开和关闭数据库连接(对于 Web 应用程序)的 CPU 密集程度如何
Rol*_*DBA 14
考虑每个数据库连接分配的内存量。必须分配哪些东西?根据MySQL 5.0 认证学习指南,第 357 页:
服务器为每个客户端连接维护多个缓冲区。一个用作与客户端交换信息的通信缓冲区。每个客户端维护其他缓冲区,用于读取表和执行连接和排序操作。
哪些设置控制每个连接的缓冲区?
建立连接时分配和释放这些缓冲区需要时间。不要忘记将这些值的总和乘以max_connections。作为旁注,请不要使用mysql_pconnect,因为 PHP 和 MySQL 的持久连接不能很好地相处。以下是有关此主题的两个信息链接:
在大量读取、大量写入的环境中,例如 OLTP,这在 RAM 使用和可能由于 OS 中交换导致的抑制方面会很昂贵。在低写入、低读取的网站上,我不会那么担心。
Aar*_*and 10
我不确定“贵多少”很重要。这肯定比重复使用相同的连接成本更高。您将观察到的内容取决于您是否正确使用连接池、池的饱和程度、设备上的可用资源等。
一般来说,如果你正在执行一个循环来与数据库进行一些交互,那么重用相同的活动连接比在循环中打开和关闭要好得多(我经常看到的一种反模式) .