我想知道哪个apache / httpd参数与设置相关,如果我期望来自不同IP的大量连接,同时获得相同数量的数据。例如:我将有10000个移动设备试图同时从服务器获取数据。数据集大约100k,由php脚本生成。每次调用都会对数据库进行查询。如何配置apache(和mysql)以在此请求期间保持活动状态?
<?php
$con = mysql_connect( 'localhost', 'root', 'pass') or die('Could not connect' );
mysql_select_db('mydb', $con) or die('Could not select database.');
$result = mysql_query("SELECT * FROM results");
mysql_close($con);
$items = array();
while($row = mysql_fetch_array($result)){
$items[] = array(
's' => $row['sport'],
....
);
echo json_encode($items);
}
问候! 迪米特里。
答案 0 :(得分:1)
首先使用mysqli API而不是mysql(http://it2.php.net/mysqli)。
然后你必须使用bind param技术(http://it2.php.net/manual/en/mysqli-stmt.bind-param.php),因为生成的查询具有更好的性能,因为mysql不必重建查询的执行计划,只能重新执行它。
服务器端注意不要减慢MyISAM驱动程序但InnoDB。如果您可以管理表结构采用众所周知的规范化实践:http://en.wikipedia.org/wiki/Database_normalization。
同时以异步方式执行while内部的代码,以便“并行化”代码的执行。