測試硬體說明:
測試使用的是我的愛機,配置如下:
CPU:C433
記憶體:128M
硬碟:酷魚2代20G
測試軟體說明:
WIN32下用的是windows nt server4,sp5,apache 1.3.12,php3.0.15和php4rc1,mysql 3.22.29,oracle 8.0.5
linux下用的是blue .12, php4rc1,mysql 3.22.32
測試程式碼說明:
使用一個很簡單的表,mysql和oracle使用的表結構是一樣的,都只有三個字段,結構如下:
mysql的表結構:
CREATE TABLE board (
board_id smallint(6) NOT NULL auto_increment,
board_name char(16) NOT NULL,
board_manager char(20),
PRIMARY KEY (board_id)
);
oracle的結構:
CREATE TABLE PHP_ORACLE."BOARD"
("BOARD_ > "BOARD_MANAGER" CHAR(20)) ;
我們只測試了INSERT操作花的時間,對於select,並未測試。
因為win32下只有PHP3才能連接oracle資料庫,所以只測試了用PHP3連接oracle的效能。相 信在PHP4的正式版本出來後,用PHP4連接oracle的速度應該會提升。
而在LINUX下,因為我沒有裝oracle,所以只測試了mysql的效能。據說在LINUX下,oracle 的效能不錯,只是無法測試。
並且我們將所有的用於資料庫連接和oracle用來分析sql語句的程式碼都放在了統計程式碼之外 ,所以測試得出的時間只是用於執行SQL操作所花費的時間。
用來測試mysql的程式:
$dblink=mysql_connect("localhost","root","shh123");
my_select_db("bbslect_db("bbs ");
$counter=1;
set_time_limit(300);
$query="insert into board (board_name,board_manager) values ('test','test')";
$ begin_time=time();
for ($i=1;$i mysql_db_query("bbs",$query);
mysql_db_query("bbs",$query);
count; 🎜>$end_time=time();
mysql_close($dblink);
echo "test db speed...
";
echo "begin time:".$begin_time."
";
echo "
end time:".$end_time."
";
$total=$end_time-$begin_time;
echo "total spent time:".$total ;
?>
用來測試oracle的程式:
$handle=OCILogon("php_oracle","php_oracle");
$counter=1;
set_time_limit(300);
$query="insert into board (board_id,board_name,board_manager) values (:board_id,'test','test')";
$ state=OCIParse($handle, $query);
OCIBindByName($state, ":board_id", &$i,32);
$begin_time=time();
for ($i=1 ;$i ociexecute($state);
}
$end_time=time();
OCIFreeStatement($state); );
echo "test db speed...
";
echo "begin time:".$begin_time."
";
echo "
end time:". $end_time."
";
$total=$end_time-$begin_time;
echo "total spent time:".$total;
?>
測試結果:
環境:win32 apache php4 mysql
結果:28秒
環境:win32 apache php3 mysql
結果:34秒
0.5(oci函數)
結果:46秒
環境:linux apache php4 mysql
結果:10秒
結論:
在WIN32下,mysql的效能雖然不是很好,但和oracle8比起來,還是要快很多,尤其是我在測試程序中,並沒有將資料庫連接的語句包括進來,所以這個測試結果只是插入數據所花費的時間,而oracle的連接,天,太慢了!在我的機器上,連接一次,至少1-2秒鐘。 而在LINUX下,mysql的效能相對於在WIN32下,又有了一個很大的飛躍。由28秒驟減到10秒。 所以,如果你不需要預存程序的支持,而且資料庫量不是大的那麼驚人的話,還是在LINUX 下使用mysql作為你的資料庫吧!這個輕量級的資料庫可以給你最佳的效能、可管理性和相 當不錯的安全性。

tostartaphpsession,usesesses_start()attheScript'Sbeginning.1)placeitbeforeanyOutputtosetThesessionCookie.2)useSessionsforuserDatalikeloginstatusorshoppingcarts.3)regenerateSessiveIdStopreventFentfixationAttacks.s.4)考慮使用AttActAcks.s.s.4)

會話再生是指在用戶進行敏感操作時生成新會話ID並使舊ID失效,以防會話固定攻擊。實現步驟包括:1.檢測敏感操作,2.生成新會話ID,3.銷毀舊會話ID,4.更新用戶端會話信息。

PHP会话对应用性能有显著影响。优化方法包括:1.使用数据库存储会话数据,提升响应速度;2.减少会话数据使用,只存储必要信息;3.采用非阻塞会话处理器,提高并发能力;4.调整会话过期时间,平衡用户体验和服务器负担;5.使用持久会话,减少数据读写次数。

PHPsessionsareserver-side,whilecookiesareclient-side.1)Sessionsstoredataontheserver,aremoresecure,andhandlelargerdata.2)Cookiesstoredataontheclient,arelesssecure,andlimitedinsize.Usesessionsforsensitivedataandcookiesfornon-sensitive,client-sidedata.

phpIdentifiesauser'ssessionSessionSessionCookiesAndSessionId.1)whiwsession_start()被稱為,phpgeneratesainiquesesesessionIdStoredInacookInAcookInAcienamedInAcienamedphpsessIdontheuser'sbrowser'sbrowser.2)thisIdallowSphptpptpptpptpptpptpptpptoretoreteretrieetrieetrieetrieetrieetrieetreetrieetrieetrieetrieetremthafromtheserver。

PHP會話的安全可以通過以下措施實現:1.使用session_regenerate_id()在用戶登錄或重要操作時重新生成會話ID。 2.通過HTTPS協議加密傳輸會話ID。 3.使用session_save_path()指定安全目錄存儲會話數據,並正確設置權限。

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3漢化版
中文版,非常好用

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

Dreamweaver CS6
視覺化網頁開發工具

Dreamweaver Mac版
視覺化網頁開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版