如果服务器时间在1-30秒之间连接到一个表,如果超过31-60秒连接到另一个表。
我需要这个的原因是因为我不确定,但是如果10,000个人正在访问一个mysql表,那么这会大大减慢它。
我的代码在
之下 <?php
header('Content-type: application/json');
$server = "localhost";
$username = "root1";
$password = "root1";
$database = "test";
$con = mysql_connect($server, $username, $password) or die ("Could not connect: " . mysql_error());
mysql_select_db($database, $con);
$sql = "SELECT id, name FROM post ORDER BY id";
$result = mysql_query($sql) or die ("Query error: " . mysql_error());
$records = array();
while($row = mysql_fetch_assoc($result)) {
$records[] = $row;
}
mysql_close($con);
echo $_GET['jsoncallback'] . '(' . json_encode($records) . ');';
?>
答案 0 :(得分:1)
不确定我完全理解但是自从Unix Epoch以来,php的time()将返回秒。如果是偶数,请将其连接到一个表,否则将另一个表连接......这将有效地分割流量...
<?php
$time = time();
$tableToAccess = ($time % 2 == 0) ? 'table_one' : 'table_two';
$db = new mysqli('localhost','username','password','database');
$result = $db->query("SELECT * FROM $tableToAccess");
?>
话虽这么说,多个用户运行的数据库引擎会降低你的速度,而不是同时进行表访问
答案 1 :(得分:1)
我建议不要在应用程序代码级别进行负载平衡。如果你需要在不同的表中分配负载,你应该考虑设置分区&amp;一个负载均衡的mysql集群,因此可以在数据库级别上进行干净的处理。这里有一些链接可以进一步指导您:
答案 2 :(得分:0)
您可以将连接超时设置为其中一个选项。看到: http://php.net/manual/en/mysqli.options.php