对俩者的链接速度很好奇,就测试了一下...
php5,mysql5.
表里有3000条数据,
短连接查询前1000条,连接断开10次数据库,进行查询;
长连接查询后1000条,连接1次数据库,进行10次查询;
大部分测试,结果类似下边,
每次连接查询一次 耗时117毫秒, 一次连接查询多次 耗时13毫秒.
sort connection: 414.452 - 296.879: 117.573 millisecond
long connection: 427.635 - 414.489: 13.146 millisecond
<?php
require("db_conn.php");
$mysql_server_name="127.0.0.1"; //数据库服务器名称
$mysql_username="root"; // 连接数据库用户名
$mysql_password="root"; // 连接数据库密码
$mysql_database="osc_store"; // 数据库的名字
$search_count=10;
$search_number = 100;
//开始
$begin = microtime()*1000;
for($i=0;$i<$search_count;$i++){
$dbConn=mysql_connect($mysql_server_name, $mysql_username,$mysql_password);
mysql_select_db($mysql_database, $dbConn);
$queryStr = "select * from `products_description` order by products_id asc limit ".($i*$search_number)." ".$search_number;
$result = mysql_query($queryStr,$dbConn);
if(!result){
die(mysql_error());
}
$list = array();
while($row=mysql_fetch_array($result)){
$list[$row["id"]] = $row;
}
mysql_free_result($result);
mysql_close($dbConn);
}
$end = microtime()*1000;
echo "sort connection: ".$end." - ".$begin.": ".(($end-$begin))." millisecond<br/>";
unset($list);
//开始
$begin = microtime()*1000;
$dbConn=mysql_connect($mysql_server_name, $mysql_username,$mysql_password);
mysql_select_db($mysql_database, $dbConn);
for($i=0;$i<$search_count;$i++){
$queryStr = "select * from `products_description` order by products_id desc limit ".($i*$search_number)." ".$search_number;
$result = mysql_query($queryStr,$dbConn);
if(!result){
die(mysql_error());
}
$list = array();
while($row=mysql_fetch_array($result)){
$list[$row["id"]] = $row;
}
mysql_free_result($result);
}
mysql_close($dbConn);
$end = microtime()*1000;
echo "long connection: ".$end." - ".$begin.": ".(($end-$begin))." millisecond";
?>
分享到:
相关推荐
在这个特定的场景中,数据库连接类是一个封装了与MySQL交互逻辑的对象,它可以简化数据库连接、查询执行、结果处理等操作。这样的类通常包含方法如`connect()`、`disconnect()`、`query()`、`fetch()`等。 在描述中...
4. **SQL语句**:使用MySQL连接包,开发者可以执行各种SQL语句,包括数据查询(SELECT)、插入(INSERT)、更新(UPDATE)、删除(DELETE)、事务处理(BEGIN, COMMIT, ROLLBACK)等。 5. **预编译语句**...
总结来说,PHP+MYSQL醒目留言本是一个典型的Web应用实例,它涵盖了前端交互、后端处理、数据库操作等多个环节,对于学习Web开发的初学者具有很高的学习价值。通过理解和实践此类程序,可以深入理解Web开发的基本流程...
这也是非常不好的,因为每次建立一个数据库连接都很耗时,好不容易建立好了连接,执行完了SQL语句,你还把数据库连接给销毁了,下一次再重新建立数据库连接,那肯定是效率很低下的! 因此,一般我们必须要使用一个...
同步查询是传统的数据库查询方式,客户端向数据库服务器发送查询请求,然后必须等待该查询完成并返回结果后才能进行下一次操作。这种方式非常直观易懂,但缺点是效率低下,因为在此期间,客户端无法进行其他操作,...
但在类的析构函数`__destruct()`中直接使用`mysql_close($this->link)`来关闭数据库连接,这就导致了一个问题:如果`mysqlClass`类的实例被创建多次,第二次(及之后每次)的实例化会在析构函数中关闭之前的数据库...
PHP的执行效率高于JavaScript,因为PHP代码在服务器端执行后会暂存于内存,对于多次请求,能更快地响应用户。 PHP与CGI(Common Gateway Interface)相比,虽然两者都可以跨平台,但CGI每次调用都需要重新编译,...
- 分批插入:每次插入一定数量的数据,避免一次性处理大量数据导致内存溢出。例如,可以使用`for`循环遍历数据数组,每次插入一部分数据。 6. 性能优化: 当处理大量数据时,应考虑性能优化。比如,开启数据库...
一次性处理大量数据可能导致内存溢出,所以可能采用分批读取和导入的方式,比如每次只处理一定数量的行,然后释放内存,再继续下一批。这可以通过循环来实现,每次处理一部分数据后调用`unset()`释放变量,减少内存...
MySQL 分页PHP类库是一种工具,它为开发者提供了一种高效、简洁的方式来处理数据库查询的分页问题。在Web开发中,特别是在数据量较大的场景下,分页是必不可少的功能,它可以提升用户体验,避免一次性加载过多数据...
而mysqli支持持久连接,即多次操作可以复用同一个连接,从而降低服务器的资源消耗。 2. **功能扩展**:mysqli扩展包含了更多的高级特性,如事务处理、预处理语句、多语句执行等,这些都是原始mysql函数集所不具备的...
在MySQL中,更新多条记录通常涉及到`UPDATE`语句的使用。在处理批量更新时,如果需要根据特定条件更新不同记录的多个字段,可以采用`CASE`语句结合`WHERE`子句来实现。标题提到的问题是,在已经通过`INSERT`方法导入...
这种方法的优点是便于程序对数据集进行多次处理,如遍历、统计和过滤操作。然而,缺点也非常明显:若数据量很大,会迅速耗尽内存资源。 2. 非缓冲查询(Unbuffered Query):通过特定的设置,让PHP在执行查询时,...
总的来说,使用PHP进行MySQL数据库字段复制涉及到数据库连接、SQL查询、数据分页处理、主键冲突解决等多个环节。通过合理的代码设计和优化,可以实现高效且稳定的数据库复制功能。在处理大规模数据时,务必考虑性能...
**二、PHP连接MySQL** 在PHP中,我们可以使用`mysqli`或`PDO`扩展来连接和操作MySQL数据库。例如,使用`mysqli`的代码示例: ```php <?php $servername = "localhost"; $username = "your_username"; $password = ...
- 持久连接:多次请求共用同一连接,提高效率,但可能导致资源浪费。 8. PHP操作数据库数据: - `mysql_query`用于执行SQL语句,如INSERT、UPDATE、DELETE和SELECT。 9. 获取并操作数据库返回数据: - `mysql_...
5. **批量插入**:在示例中,逐个插入数据可能导致多次磁盘I/O,影响性能。可以考虑使用`INSERT INTO...VALUES`的批量插入方式,减少数据库操作次数。 6. **连接查询优化**:连接查询(JOIN)是数据库操作中常见的...
这个PHP+MySQL留言板实例涵盖了数据库设计、数据库连接、用户界面呈现、分页技术和文件操作等多个方面,是学习Web开发和数据库管理的优秀案例。通过对这些代码的理解和实践,新手可以快速掌握PHP和MySQL在实际项目中...
这样,每次只获取一行数据,可以显著降低内存消耗。 `mysql_unbuffered_query`的优点在于,对于大结果集,它可以节省大量内存,同时允许在获取第一条数据后立即进行操作,无需等待整个查询完成。然而,使用此函数也...
从技术的角度来看,永久连接的前提条件是PHP必须安装为多线程或多进程Web服务器的插件或模块,最典型的例子就是作为Apache服务器的一个模块。在Apache的多进程模式中,父进程和子进程协调运行,子进程负责生成Web...