连接到交通繁忙的网站Mysqli和PHP的数据库

时间:2016-09-13 02:44:23

标签: php mysql ajax mysqli

在编码时,我使用默认的连接配置:

//CONNECTION INFORMATION
DEFINE('DATABASE_USER', 'root');
DEFINE('DATABASE_PASSWORD', '*********');
DEFINE('DATABASE_HOST', 'localhost');
DEFINE('DATABASE_NAME', 'mydatabase');

// Override The Default Php.ini settings for sending mail
date_default_timezone_set("America/Indianapolis");


//CONNECTING
$con = mysqli_connect(DATABASE_HOST, DATABASE_USER, DATABASE_PASSWORD,DATABASE_NAME);

if (!$con) {
     trigger_error('Could not connect to MySQL: ' . mysqli_connect_error());
    }

但这是正常连接网站,如果我有一个非常繁忙的交通网站如Facebook或其他网站使用MySQL数据库端,你有用户,评论,每秒更改数据。是完全相同的方式还是有更好的方法来避免

  

MAX_USE_CONNECTIONS

警告除此之外,网站运行缓慢,但在第一次使用是正常的,但后来日复一日地变慢,直到重新启动服务器。

我尝试了其他解决方案,因为每天使用不同的数据库,但我不认为这是一个解决方案,因为我希望将所有数据保存在一个数据库中进行搜索。

为了计算我使用查询:

mysqli_query($con, "SELECT * FROM `TABLE` WHERE `id` = '$user_id'");

为了选择和获取我使用的数据:

$table = mysqli_query($con, "SELECT * FROM `TABLE` WHERE `id` = '$user_id'");

if(mysqli_num_rows($table) !== 0)
   {
      while($rows = mysqli_fetch_array($table))
         {
               $id = $rows['id'];
               ......
         }
   }

对于实时更新我有每一次新的更改,我使用ajax获取数据。 每个ajax调用都会打开新连接吗?在获取数据后我是否必须关闭每个连接?为什么?

2 个答案:

答案 0 :(得分:1)

  

以同样的方式

  

每个ajax调用都会打开新连接吗?

  

获取数据后是否必须关闭每个连接?为什么?

没有。 PHP将为您关闭它。

  

感谢您的时间和信息让我更有知识,以避免编码时错误的方式:)

你的所有编码都是错误的,并且会有几年的时间。只需了解并及时,您就可以创建一个可以维持Facebook 1/1000000流量的网站。

然而,将这些年来的重度学习放在常规答案的几个段落中是不可能的。希望你明白。

答案 1 :(得分:0)

对代码进行基准测试的一种简单方法就是定时...

$time = microtime(true);

//- code to time

echo number_format( (microtime(true) - $time), 4 );

这将为您提供它们之间代码的微秒时间,以秒为单位的4位小数。查看代码需要很长时间运行的位置,并了解如何改进代码,例如优化查询等。