为Android客户端请求优化apache和mysql

时间:2014-01-31 11:09:18

标签: android mysql apache http

我想知道哪个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);
}

问候! 迪米特里。

1 个答案:

答案 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内部的代码,以便“并行化”代码的执行。