mongodb在windows下的安裝步驟分享

來源:互聯網
上載者:User

nosql很火,mongodb做為一款優秀的分布式檔案儲存體的資料庫,也得到了不小的關注,http://weibo.com/k/mongodb 新浪微博中每天現在約有20多條資訊。

官網:http://www.mongodb.org/
下載:http://www.mongodb.org/downloads
PHP擴充:http://cn.php.net/mongo

我選擇了windows的安裝包,下載了Windows 32-bit的1.8.2版本,以下是安裝記錄:

解壓到了D:\www\mongodb

cd d:\www
bin\mongod.exe --dbpath=d:/www/mongodb/data

Sat Jul 09 09:03:28 [initandlisten] db version v1.8.2, pdfile version 4.5複製代碼 代碼如下:Sat Jul 09 09:03:28 [initandlisten] git version: 433bbaa14aaba6860da15bd4de8edf6
00f56501b
Sat Jul 09 09:03:28 [initandlisten] build sys info: windows (5, 1, 2600, 2, 'Ser
vice Pack 3') BOOST_LIB_VERSION=1_35
Sat Jul 09 09:03:28 [initandlisten] waiting for connections on port 27017
Sat Jul 09 09:03:28 [websvr] web admin interface listening on port 28017

這樣mongodb就在運行了,但DOS操作還不能關閉,一關閉就停了。因此需要將其設為系統服務:
D:\www\mongodb>bin\mongod.exe --dbpath=d:/www/mongodb/data --logpath=d:/www/mongodb/mongodb.log --install 複製代碼 代碼如下:all output going to: d:/www/mongodb/mongodb.log
Creating service MongoDB.
Service creation successful.
Service can be started from the command line via 'net start "MongoDB"'.

這樣就可以在系統服務(services.msc)裡就多了個MongoDB的服務,可以設定成 自動 來讓windows每次啟動時自動啟動Mongo DB。
下面看其內建的用戶端,仍然在其bin目錄下,檔案名稱為mongo.exe
bin\mongo.exe 複製代碼 代碼如下:MongoDB shell version: 1.8.2
connecting to: test

在http://cn.php.net/mongo下載mongodb的php擴充,PHP 5.2 VC6 Thread-Safe Mongo extension。
5.2版只有5.2.13的mongodb.dll。本地php重裝了5.2.13,可以用了。
主要代碼: 複製代碼 代碼如下:$m = new Mongo(); // 預設串連原生27017連接埠
$mdb = $m -> hx; // 選擇hx資料庫,如果以前沒有,則會自動建立,也可以用$m->selectDB("hx");
$collection = $mdb->hx_site; //選擇hx裡面的hx_site集合,相當於取hx庫裡的hx_site表,也可以使用$mdb->selectCollection("hx_site");
[html]
批量插入:
[code]
for($i=53;$i<84;$i++){
$start = $i * 10000;
$end = ($i+1) * 10000;
$sql = "SELECT * FROM hx_site WHERE id > $start AND id <= $end";
$tmp = $db->query($sql);
$arrs = array();
while ($arr = $db->fetch_array($tmp)) {
$arrs[] = $arr;
}
$collection->batchInsert($arrs);
}

用php將本地有83.6w條資料的mysql轉成mongodb,每次插入1w條,一次需要109~125ms。 複製代碼 代碼如下:/*
mysql語句對應的mongodb文法: http://www.jb51.net/article/28694.htm
取pagerank=5,按id倒序,取30條
類似於 SELECT * FROM hx_site WHERE pagerank = 5 ORDER BY id DESC LIMIT 30
*/
$cursor = $collection->find(array('pagerank'=>'5'))->sort(array('id'=>-1))->limit(30);
foreach ($cursor as $obj) { //遍曆所有集合中的文檔
echo $obj["id"].' '.$obj["domain"] . "<br>";
}

沒索引的情況下取一條記錄,656ms,mysql需要0.7s,基本上沒區別。
count(*)某條件,800多ms,加索引後100多ms

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.