php+mysql中存储过程性能简单比较
2011-11-14 09:56
495 查看
简介:这是php+mysql中存储过程性能简单比较的详细页面,介绍了和php,有关的知识、技巧、经验,和一些php源码等。
class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=334797' scrolling='no'>
PHP+MYSQL中,使用MYSQL的存储过程其实是很好的,而且效率还会快点的,
在这里,小结复习下MYSQL的用法吧,使用的是PDO
1
//不使用存储过程
$time = microtime(TRUE);
$mem = memory_get_usage();
$dsn = 'pgsql:host=localhost;dbname=gonzalo;port=5432';
$user = 'user';
$password = 'password';
$conn = new PDO($dsn, $user, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->beginTransaction();
$stmt = $conn->prepare('delete from web.tbltest');
$stmt->execute();
$stmt = $conn->prepare('INSERT INTO web.tbltest (field1) values (?)');
foreach (range(0,1000) as $i) {
$stmt->execute(array($i));
}
$conn->commit();
print_r(array('memory' => (memory_get_usage() - $mem) / (1024 * 1024), 'seconds' => microtime(TRUE) - $time));
2 使用存储过程
存储过程的写法:
CREATE OR REPLACE FUNCTION web.method1()
RETURNS numeric AS
$BODY$
BEGIN
DELETE FROM web.tbltest;
FOR i IN 0..1000 LOOP
INSERT INTO web.tbltest (field1) values (i);
END LOOP;
RETURN 1;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
$time = microtime(TRUE);
$mem = memory_get_usage();
$dsn = 'pgsql:host=localhost;dbname=gonzalo;port=5432';
$user = 'user';
$password = 'password';
$conn = new PDO($dsn, $user, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->beginTransaction();
$stmt = $conn->prepare('SELECT web.method1()');
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$out = $stmt->fetchAll();
$conn->commit();
print_r(array('memory' => (memory_get_usage() - $mem) / (1024 * 1024), 'seconds' => microtime(TRUE) - $time));
可以看到结果对比如下:
without stored procedures
memory: 0.0023880004882812
seconds: 0.31109309196472
with stored procedures
memory: 0.0020713806152344
Seconds: 0.065021991729736
可以看到,用了存储过程的性能还是不错的
“php+mysql中存储过程性能简单比较”的更多相关文章 》
爱J2EE关注Java迈克尔杰克逊视频站JSON在线工具
http://biancheng.dnbcw.info/php/334797.html pageNo:10
class='pingjiaF' frameborder='0' src='http://biancheng.dnbcw.info/pingjia.php?id=334797' scrolling='no'>
PHP+MYSQL中,使用MYSQL的存储过程其实是很好的,而且效率还会快点的,
在这里,小结复习下MYSQL的用法吧,使用的是PDO
1
//不使用存储过程
$time = microtime(TRUE);
$mem = memory_get_usage();
$dsn = 'pgsql:host=localhost;dbname=gonzalo;port=5432';
$user = 'user';
$password = 'password';
$conn = new PDO($dsn, $user, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->beginTransaction();
$stmt = $conn->prepare('delete from web.tbltest');
$stmt->execute();
$stmt = $conn->prepare('INSERT INTO web.tbltest (field1) values (?)');
foreach (range(0,1000) as $i) {
$stmt->execute(array($i));
}
$conn->commit();
print_r(array('memory' => (memory_get_usage() - $mem) / (1024 * 1024), 'seconds' => microtime(TRUE) - $time));
2 使用存储过程
存储过程的写法:
CREATE OR REPLACE FUNCTION web.method1()
RETURNS numeric AS
$BODY$
BEGIN
DELETE FROM web.tbltest;
FOR i IN 0..1000 LOOP
INSERT INTO web.tbltest (field1) values (i);
END LOOP;
RETURN 1;
END;
$BODY$
LANGUAGE plpgsql VOLATILE
COST 100;
$time = microtime(TRUE);
$mem = memory_get_usage();
$dsn = 'pgsql:host=localhost;dbname=gonzalo;port=5432';
$user = 'user';
$password = 'password';
$conn = new PDO($dsn, $user, $password);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$conn->beginTransaction();
$stmt = $conn->prepare('SELECT web.method1()');
$stmt->execute();
$stmt->setFetchMode(PDO::FETCH_ASSOC);
$out = $stmt->fetchAll();
$conn->commit();
print_r(array('memory' => (memory_get_usage() - $mem) / (1024 * 1024), 'seconds' => microtime(TRUE) - $time));
可以看到结果对比如下:
without stored procedures
memory: 0.0023880004882812
seconds: 0.31109309196472
with stored procedures
memory: 0.0020713806152344
Seconds: 0.065021991729736
可以看到,用了存储过程的性能还是不错的
“php+mysql中存储过程性能简单比较”的更多相关文章 》
爱J2EE关注Java迈克尔杰克逊视频站JSON在线工具
http://biancheng.dnbcw.info/php/334797.html pageNo:10
相关文章推荐
- php+mysql中存储过程性能简单比较
- PHP连mysql和oracle数据库性能比较
- 用PHP连mysql和oracle数据库性能比较
- 简单的分页存储过程 php mysql mysqli扩展
- 用PHP连mysql和oracle数据库性能比较
- 用PHP连mysql和oracle数据库性能比较
- 用PHP连mysql和oracle数据库性能比较
- 用PHP连mysql和oracle数据库性能比较
- mysql性能测试及不同版本的比较
- 【高并发简单解决方案】redis队列缓存 + mysql 批量入库 + php离线整合
- PHP与Mysql性能优化--DISCUZ技术文库
- 简单实用的分页函数(Php+mysql)
- 【Android】移动端与服务器端简单的交互(账号密码登录) Android+PHP+MySQL
- centos安装nginx+mysql+php+fastcgi+memcache最简单方法
- PHP 结合MYSQL简单的实现了Todo List 功能
- Nginx+Mysql+PHP安装和配置,简单优化
- php 调用mysql存储过程
- MySQL中MyISAM引擎与InnoDB引擎性能简单测试
- PHP如何调用mysql存储过程
- 简单的使用PHP操作Mysql