各種資料庫效能比較 初步

2021-09-02 15:13:19 字數 2360 閱讀 1248

// 最近稍微有點時間 測試下nosql(reids,mongdb)和mysql效能問題

// 現在用的最普遍的redis非關係型資料庫

// 迴圈十萬次和一百萬次消耗時間(最簡單的資料插入):

$redis=new redis();

$redis->connect('127.0.0.1',6379); // 本機ip等(先安裝redis服務及dll拓展)

$redis->auth('123456'); // 密碼

$starttime = microtime(true);  

for($i=1;$i<= 1000001;$i++)

$stoptime = microtime(true);  

$timespent=$stoptime-$starttime;

echo number_format($timespent*1000, 4).'毫秒';  

// 十萬次 100001  8,050.7162毫秒

// 一百萬次 1000001  78,719.3971毫秒

// mysql批量插入的效率如下:

$link = mysql_connect('127.0.0.1','root',''); 

if (!$link) { 

die('could not connect to mysql: ' . mysql_error()); 

mysql_select_db('test');

$starttime = microtime(true);  

$str = '';

for($i=1;$i<=100000;$i++){

$str .= '('.$i.'),';

$sql1 ="insert into test(val) values".$str;

$sql2 = rtrim($sql1, ",").';';  // 拼接sql字串太長可能不太好

mysql_query($sql2,$link); 

for($i=1;$i<=1000000;$i++){

$sql1 ="insert into test(val) values($i)";

mysql_query($sql1,$link); 

$stoptime = microtime(true);

$timespent=$stoptime-$starttime;

echo number_format($timespent*1000, 4).'毫秒';  

exit;

// sql值拼接的情況下

// 100000 => 1,960.1121毫秒/1,662.9341毫秒

// 10000000 => fatal error: allowed memory size of 134217728 bytes exhausted (tried to allocate 98888926 bytes) in d:\wamp_php\wamp\www\testmysql.php on line 14

// 5000000 => fatal error: allowed memory size of 134217728 bytes exhausted (tried to allocate 48888924 bytes) in d:\wamp_php\wamp\www\testmysql.php on line 15

// 3000000 => warning: error while sending query packet. pid=2928 in d:\wamp_php\wamp\www\testmysql.php on line 16

// 1000000 => 

//warning: mysql_query(): mysql server has gone away in d:\wamp_php\wamp\www\testmysql.php on line 16

//warning: mysql_query(): error reading result set's header in d:\wamp_php\wamp\www\testmysql.php on line 16

// 迴圈

// 1000000 實際插入表 1627條 耗時122秒03毫秒

由此可見:mysql大資料量的插入資料拼接形式的效率遠大於迴圈插入的效率,不過我自己的筆記本可能配置久和低,實際在伺服器的效率應該會高很多的。

mongdb批量插入效率:在3月份的時候在公司電腦用mongdb插入1000萬條記錄(含id,name,age三個字段),用時43分鐘不到一小時,這個效率應該和redis相差不大;

總結:非關係型資料庫效率要比關係型資料庫效率 高很多。。。

各種排序方法的效能比較

測試環境說明 win xp下,vs2008,主頻 core2 雙核2.53ghz 下面是測試的 using system using system.collections.generic using system.linq using system.text using system.collect...

各種內排序演算法效能比較

各種內排序演算法效能比較 個人總結 穩定性最好情況 最壞情況 平均空間複雜度 確定最終位置 簡單選擇排序 屬於選擇排序 不穩定o n n 1趟 o n n 1趟 o n n 1趟 o 1 一趟排序後能確定某個元素的最終位置 直接插入排序 穩定o n n 1趟 o n n 1趟 反向有序 o n n ...

mysql 各種儲存引擎效能比較

1 測試環境 cpu 2ghz 記憶體 2gb 區域網 開乙個長連線,構造隨機查詢條件。2 測試結果 資料量 88171條 qps query per second 引擎型別 網域名稱 快取 qps 不快取 qps innodb innodb.abc.com 7125.467573 11.12710...