php读写上亿记录数据库测试
硬件:Intel(R) Core(TM)2 Quad CPU Q6600 @ 2.40GHz 4G内存
1、哈希型数据库
2、关系型数据库
表结构
name sex age memo1 memo2 memo3 memo4 memo5 memo6 memo7 memo8 memo9 memo10 memo11 memo12 memo13
对age字段做索引
第一次写:10万条记录 20秒
第二次写:40万条记录 140秒
第二次写:20万条记录 293秒
写数据,当记录数增大的时候,写入的数据变慢
读:1000次 没找到:大概120毫秒 找到一条:大概190毫秒 10万条记录
读:1000次 没找到:大概120毫秒 找到一条:大概190毫秒 50万条记录
读:1000次 没找到:大概120毫秒 找到一条:大概190毫秒 70万条记录
记录数的增加,对查找速度没影响。如果有返回信息则影响速度。返回的信息越多速度越慢。
测试程序:
写:
<?php
set_time_limit(86400);
require_once("inc/comm.inc.php");
function getmicrotime()
{
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
function getName()
{
$str = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890";
$len = strlen($str);
$password = "";
for($i=1;$i<=8;$i++){
$num=rand(0,$len-1);
$password = $password.$str[$num];
}
return $password;
}
$objTest=ClsTt::getTt("DB");
$time_start = getmicrotime(); //获取程序开始执行的时间
for($i=0;$i<200000;$i++)
{
$key=getName();
$arrCols=array('name'=>$key,
'sex'=>rand(0,1),
'age'=>rand(18,60),
'memo'=>'memo',
'memo2'=>'memo2',
'memo3'=>'memo3',
'memo4'=>'memo4',
'memo5'=>'memo5',
'memo6'=>'memo6',
'memo7'=>'memo7',
'memo8'=>'memo8',
'memo9'=>'memo9',
'memo10'=>'memo10',
'memo11'=>'memo11',
'memo12'=>'memo12',
&nbs
相关文档:
对于PHP
,很多朋友抱怨发展问题
,能力问题。还有自己以后的发展及薪水问题。还有一些口吻就是PHP不行,不适合大型架构等等。快下班了,作为一个开发
PHP已经6年多了老鸟,在这里随意说上几句。希望能对那些刚刚入门的PHPER有些帮助。
首先任何语言的能力关键在于自己的技术能力。否则给你一架波音 ......
接收xml:
$xml = file_get_contents('php://input');
发送(post):
$xml_data = <xml>...</xml>";
$url = http://dest_url;
$header[] = "Content-type: text/xml";//定义content-type为xml
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_ ......
数学函数
Abs
函数描述:mixed abs(mixed number);
返回值:函数abs返回参数number的绝对值。
Acos
函数描述:double acos(double number);
返回值:函数acos返回参数number的反余弦值。如果参数number大于1或小于1,
则其反余弦值无意义 。
Acosh --
反双曲余弦
Asin
函数描述;double asin(double number); ......
PHP是个伟大的web开发语言,灵活的语言,但是看到php程序员周而复始的犯的一些错误。我做了下面这个列表,列出了PHP程序员经常犯的10中错误,大多数和安全相关。看看你犯了几种
1.不转意html entities
一个基本的常识:所有不可信任的输入(特别是用户从form中提交的数据) ,输出之前都要转意。
ech ......
array array_diff
( array array1, array array2 [, array
...] )
array_diff()
返回一个数组,该数组包括了所有在 array1
中但是不在任何其它参数数组中的值。注意键名保留不变。
猛的一看这个方法,还以为是将两个数组中不同的返回来呢,事实上不是,返回的是在array1中的,但是不在其他数组中的。 ......