mysql版本:5.1.50,驅動版本:5.1.6(最新的5.1.13有很多雜七雜八的問題)
mongodb版本:1.6.2,驅動版本:2.1
作業系統:windows xp sp3(這個影響應該不大)
cpu:intel core2 e6550 2.33g
記憶體:2g(足夠了)
mysql啟動引數:bin\mysqld --no-defaults --console --character-set-server=utf8 --max_connections=1000 --max_user_connections=1000
mongodb啟動引數:bin\mongod --dbpath data\ --directoryperdb --rest --maxconns 1000 –quiet
除了加大最大連線數之外,均使用預設引數
create table `flt_evecurrent` (
`nodeid` int(11) not null default '0',
`fltid` int(11) not null default '0',
`objid` int(11) default null,
`stationid` int(11) default null,
`evetype` int(11) default null,
`severity` int(11) default null,
`reporttime` date default null,
`createtime` date default null,
`evecontent` varchar(1024) default null,
`evedesc` varchar(256) default null,
primary key (`nodeid`,`fltid`)
mongodb類似,索引按照查詢語句的查詢字段建立,該例子中為objid和createtime兩個字段建立索引。
分別插入100萬條記錄,並對其做100個使用者併發查詢操作。
mysql每一次都drop表,mongodb每一次都刪除data目錄。
查詢的時候,從第二次查詢開始,連續記錄三次。
插入時間
查詢時間
mysql innodb引擎 無索引
10分33秒
39.516秒、35.907秒、39.907秒
mysql innodb引擎 有索引
11分16秒
非常不穩定:22.531秒、13.078秒、23.078秒、26.047秒、21.234秒、28.469秒、20.922秒、13.328秒
mysql myisam引擎 無索引
3分21秒
22.812秒、23.343秒、23.125秒
mysql myisam引擎 有索引
3分50秒
10.312秒、10.359秒、10.296秒
mongodb無索引
37秒59.531秒、60.063秒、59.891秒
mongodb有索引
50秒3.484秒、3.453秒、3.453秒
磁碟空間占用(有索引時候的占用,無索引情況差不多):
mysql myisam:57mb
mysql innodb:264mb
mongodb:464mb
另外測試中還發現乙個有意思的現象,如果mongodb查詢中,如果單獨查詢objid欄位,耗時約1秒,如果單獨查詢createtime欄位,耗時約10秒,如果兩個字段合起來查,就是上面的結果,約3秒,估計mongodb內部對查詢順序作了優化吧。
MongoDB和MySQL的區別
一 1 基於分布式檔案儲存 2 高負載情況下新增更多節點,可以保證伺服器效能 3 將資料儲存為乙個文件 二 比較 1 穩定性 2 索引,索引放在記憶體中,能夠提公升隨機讀寫的效能。如果索引不能完全放在記憶體,一旦出現隨機讀寫比較高的時候,就會頻繁地進行磁碟交換,mongodb的效能就會急劇下降 在m...
MongoDB和MySQL的區別
mysql是傳統的關係型資料庫,mongodb則是非關係型資料庫,也叫文件型資料庫,是一種nosql的資料庫。mongodb 文件型資料庫 提供可擴充套件的高效能資料儲存 一 1 基於分布式檔案儲存 2 高負載情況下新增更多節點,可以保證伺服器效能 3 將資料儲存為乙個文件 二 比較 1 穩定性 2...
Mongodb和mysql的區別
mysql是傳統的關係型資料庫,mongodb則是非關係型資料庫,也叫文件型資料庫,是一種nosql的資料庫。mongodb 文件型資料庫 提供可擴充套件的高效能資料儲存 一 1 基於分布式檔案儲存 2 高負載情況下新增更多節點,可以保證伺服器效能 3 將資料儲存為乙個文件 4 mongodb對資料...