我的应用程序很大而且大约。里面有 200 个表,有 200,000 个条目
那不是很大。然而,大量的表通常是一个很好的指标,表明您试图对数据进行分片并破坏规范化。
意味着一旦我配置了 php.ini,则无需在代码中的任何位置添加 mysql_connect() 查询
添加mysql_connect()真的那么难吗?? 如果在您的 ini 文件或自动添加的包含文件中设置了用户名/密码,您甚至不需要显式设置它们。事实上,如果你将 db 函数包装在你的包含文件中,你可以懒惰地连接:
<?php
ini_set('mysql.default_user', 'scott');
ini_set('mysql.default_password','pussycat');
$GLOBALS['my_db_handle']=false;
function wrap_mysql_connect()
{
if (false===$GLOBALS['my_db_handle']) {
$GLOBALS['my_db_handle']=mysql_connect();
@mysql_select_db('my_preferred_db', $GLOBALS['my_db_handle']);
@mysql_set_charset('utf8', $GLOBALS['my_db_handle']);
}
return $GLOBALS['my_db_handle'];
}
function wrap_mysql_query($sql)
{
if (false===$GLOBALS['my_db_handle']) {
wrap_mysql_connect();
}
if (false===$GLOBALS['my_db_handle']) {
trigger_error(mysql_error());
return false;
}
$result=mysql_query($sql, $GLOBALS['my_db_handle']);
if (false === $result) {
trigger_error(mysql_error());
return false;
}
return result;
}
虽然在不需要时打开数据库连接(并且在不再需要时未能显式关闭它们)确实会不必要地消耗资源,但开销并不大 - 请注意过早的优化。