'Etc'에 해당되는 글 115건

  1. SQL to Mongo Mapping Chart
  2. 몽고DB와 MSSQL2008 INSERT 속도 테스트 5
  3. Index Rebuild 스터디 발표 내용^^
  4. exception in initAndListen std::exception: old lock file, terminating
  5. Mongdb 시작
  6. Monggo PPT
  7. 드뎌 한글판으로 NoSQL MongoDB 책 예판하다^^^
  8. tempdb SQL Server 재가동시 매번 8MB 크기로 재 생성 될까?
  9. NOSQL - MongGo DB 1
  10. NoSQL 에 대한 블로그 포스트 모음

SQL to Mongo Mapping Chart


기존 T-SQL을 사용하던 사람은 몽고DB의 JSON(BSON) 스타일 쿼리를 만드는데 많이 어려움이 있다. 아래의 매핑 차트를 활용하여 쿼리 규칙을 정의한다.

http://www.mongodb.org/display/DOCS/SQL+to+Mongo+Mapping+Chart


T-SQL과 비교
MySQL termMongo term
database database
table collection
index index
row BSON document
column BSON field
join embedding and linking
primary key _id field
SQL Statement 
Mongo Statement 
CREATE TABLE USERS (a Number, b Number)
implicit; can also be done explicitly with
db.createCollection("mycoll")
ALTER TABLE users ADD ...
implicit
  
INSERT INTO USERS VALUES(3,5)
db.users.insert({a:3,b:5})
  
SELECT a,b FROM users
db.users.find({}, {a:1,b:1})
SELECT * FROM users
db.users.find()
SELECT * FROM users WHERE age=33
db.users.find({age:33})
SELECT a,b FROM users WHERE age=33
db.users.find({age:33}, {a:1,b:1})
SELECT * FROM users WHERE age=33 ORDER BY name
db.users.find({age:33}).sort({name:1})
SELECT * FROM users WHERE age>33
db.users.find({age:{$gt:33}})
SELECT * FROM users WHERE age!=33
db.users.findt.find({age:{$ne:4}})
SELECT * FROM users WHERE name LIKE "%Joe%"
db.users.find({name:/Joe/})
SELECT * FROM users WHERE name LIKE "Joe%"
db.users.find({name:/^Joe/})
SELECT * FROM users WHERE age>33 AND age<=40
db.users.find({'age':{$gt:33,$lte:40}})
SELECT * FROM users ORDER BY name DESC
db.users.find().sort({name:-1})
SELECT * FROM users WHERE a=1 and b='q'
db.users.find({a:1,b:'q'})
SELECT * FROM users LIMIT 10 SKIP 20
db.users.find().limit(10).skip(20)
SELECT * FROM users WHERE a=1 or b=2
db.users.find( { $or : [ { a : 1 } , { b : 2 } ] } )
SELECT * FROM users LIMIT 1
db.users.findOne()
SELECT DISTINCT last_name FROM users
db.users.distinct('last_name')
SELECT COUNT(*y)
FROM users
db.users.count()
SELECT COUNT(*y)
FROM users where AGE > 30
db.users.find({age: {'$gt': 30}}).count()
SELECT COUNT(AGE) from users
db.users.find({age: {'$exists': true}}).count()
  
CREATE INDEX myindexname ON users(name)
db.users.ensureIndex({name:1})
CREATE INDEX myindexname ON users(name,ts DESC)
db.users.ensureIndex({name:1,ts:-1})
  
EXPLAIN SELECT * FROM users WHERE z=3
db.users.find({z:3}).explain()
  
UPDATE users SET a=1 WHERE b='q'
db.users.update({b:'q'}, {$set:{a:1}}, false, true)
UPDATE users SET a=a+2 WHERE b='q'
db.users.update({b:'q'}, {$inc:{a:2}}, false, true)
  
DELETE FROM users WHERE z="abc"
db.users.remove({z:'abc'});




신규 프로젝트에서 NoSQL 기반 게임 로그를 기록에 대한 성능 분석을 진행하였다. 사실 개발 기간도 길어서^^ 이번에 NoSQL 달인이 되고자 한다 ㅠㅠ.

가. 테스트 환경
OS : Win7 x64
Memory : 16G
DISK : Internal DISK
CPU : Intel(R) Xeon

나. 테스트 시나리오
단일 쓰레드에서 입력 갯수별 수행 횟수를 비교

다. DBMS ( 같은 서버에서 존재)
가. MSSQL
Microsoft SQL Server 2008 R2 (SP1) - 10.50.2500.0 (X64)

나. NOSQL
Mongo DB 1.9.0 (설치는 주디아줌마 블로그에서 참조하세요)

라. 입력할 데이타 형식


마. 테스트 어플리케이션

C#

사. 테스트 결과
 입력갯수 Mongo 수행시간(ms) MsSQL 수행 시간(ms) Mongo 1 row 수행 시간(ms) MsSQL 1 row 수행 시간(ms)
             1,000                          203                                 8,424 0.203 8.424
             2,000                          281                                18,315 0.1405 9.1575
             3,000                          437                                25,865 0.145666667 8.621666667
             4,000                          593                                33,883 0.14825 8.47075
             5,000                          734                                42,464 0.1468 8.4928
             6,000                          889                                51,277 0.148166667 8.546166667
             7,000                        1,045                                59,312 0.149285714 8.473142857
             8,000                        1,186                                67,954 0.14825 8.49425
             9,000                        1,326                                76,596 0.147333333 8.510666667
            10,000                        1,497                                84,678 0.1497 8.4678
            11,000                        1,638                                93,226 0.148909091 8.475090909
            12,000                        1,779                              102,539 0.14825 8.544916667
            13,000                        1,918                              110,137 0.147538462 8.472076923
            14,000                        2,060                              118,779 0.147142857 8.484214286
            15,000                        2,215                              141,041 0.147666667 9.402733333
            16,000                        2,371                              145,549 0.1481875 9.0968125
            17,000                        2,527                              145,065 0.148647059 8.533235294
            18,000                        2,684                              152,771 0.149111111 8.487277778
            19,000                        2,808                              161,898 0.147789474 8.520947368
            20,000                        2,964                              169,527 0.1482 8.47635
            21,000                        3,120                              181,585 0.148571429 8.646904762
            22,000                        3,276                              194,689 0.148909091 8.8495



몽고DB와 MSSQL의 1개 로우를 입력하는데 소요 시간은 비슷하다.
Mongo 1 row 수행 시간(ms) MsSQL 1 row 수행 시간(ms)
0.203 8.424

평균적으로 몽고DB가 MSSQL에 비해 57배 빠른 것으로 보인다.

'Etc' 카테고리의 다른 글

몽고DB 어드민 관리툴  (1) 2011.08.18
SQL to Mongo Mapping Chart  (0) 2011.08.18
Index Rebuild 스터디 발표 내용^^  (0) 2011.08.02
exception in initAndListen std::exception: old lock file, terminating  (0) 2011.08.01
Mongdb 시작  (0) 2011.06.21
7월 30일 오프 스터디때 발표한 내용^^


 

'Etc' 카테고리의 다른 글

SQL to Mongo Mapping Chart  (0) 2011.08.18
몽고DB와 MSSQL2008 INSERT 속도 테스트  (5) 2011.08.05
exception in initAndListen std::exception: old lock file, terminating  (0) 2011.08.01
Mongdb 시작  (0) 2011.06.21
Monggo PPT  (0) 2011.06.01

참고 링크
http://www.freshblurbs.com/recovering-std-exception-old-lock-file-terminating-mongodb-server

증상
: MongGo DB Service가 시작을 못하고 재시작을 하고 있는 상태
: 로그 파일은 이미 아래의 로그로 꽉차여 있는 상황

Mon Aug 01 16:17:53 [initandlisten] MongoDB starting : pid=3268 port=27017 dbpath=c:\data\db 64-bit 

Mon Aug 01 16:17:53 [initandlisten] db version v1.8.2, pdfile version 4.5

Mon Aug 01 16:17:53 [initandlisten] git version: 433bbaa14aaba6860da15bd4de8edf600f56501b

Mon Aug 01 16:17:53 [initandlisten] build sys info: windows (6, 1, 7600, 2, '') BOOST_LIB_VERSION=1_42

Mon Aug 01 16:17:53 [initandlisten] exception in initAndListen std::exception: old lock file, terminating

Mon Aug 01 16:17:53 dbexit: 

Mon Aug 01 16:17:53 [initandlisten] shutdown: going to close listening sockets...

Mon Aug 01 16:17:53 [initandlisten] shutdown: going to flush diaglog...

Mon Aug 01 16:17:53 [initandlisten] shutdown: going to close sockets...

Mon Aug 01 16:17:53 [initandlisten] shutdown: waiting for fs preallocator...

Mon Aug 01 16:17:53 [initandlisten] shutdown: closing all files...

Mon Aug 01 16:17:53 closeAllFiles() finished

Mon Aug 01 16:17:53 dbexit: really exiting now

 
원인
: 예기치 않은 종료로 인한 Clean Shutdown이 되지 못한 상황

해결 방법
: C:\data\db 몽고 DB Data 폴더의 mongod.lock 파일을 제거하고 서비스를 다시 시작 한다.


 

'Etc' 카테고리의 다른 글

몽고DB와 MSSQL2008 INSERT 속도 테스트  (5) 2011.08.05
Index Rebuild 스터디 발표 내용^^  (0) 2011.08.02
Mongdb 시작  (0) 2011.06.21
Monggo PPT  (0) 2011.06.01
드뎌 한글판으로 NoSQL MongoDB 책 예판하다^^^  (0) 2011.05.23

Mongdb 시작



MongDB 기본 Port 27017 포트 사용한다.  데이타베이스 관리에 대한 정보를 얻고자 한다면 http://localhost:28017/ 접속하여 얻을 수가 있다.


오웃,, 놀라워라..ㅋㅋㅋ


Monggo DB 접속

1. mongo 실행한다.
    help 명령어를 이용하여 명령어를 확인할 수 있다.
   

Monggo PPT


참고 URL
http://javacan.tistory.com/166

몽고DB 책이 도착했습니다.  가격대비 책의 SIZE가 작더군요..  약간의 실망이 있긴 하지만 6월의 목표!! 몽고 DB 설치부터의 과정을 Blog 포스팅할 예정입니다^^. 기대해주세요.

드뎌, 한글판으로 Nosql 책이 예판되었다. 6월 1일부터 배송한다고 하니~ 기쁘다~ 기존 클라우드 책은 언제 다 볼꺼야 ㅠㅠㅠ~~ 나도 이제 슬슬 패러다임에 따라 이동되어야 하는 구낭~ 휴우~

http://www.yes24.com/24/goods/5161478
가격 : 22,500원

'Etc' 카테고리의 다른 글

Mongdb 시작  (0) 2011.06.21
Monggo PPT  (0) 2011.06.01
tempdb SQL Server 재가동시 매번 8MB 크기로 재 생성 될까?  (0) 2011.05.13
NOSQL - MongGo DB  (1) 2011.04.26
NoSQL 에 대한 블로그 포스트 모음  (0) 2011.04.18

참고 링크
http://sqlserverpedia.com/wiki/TempDB

tempdb 데이타베이스는 SQL Server 서비스가 중지되었다가 다시 시작될 때마다  새로 만들어진다. SQL Server 서비스가 시작되면 기본적으로 SQL Server는 새롭게 8MB 크기의 tempdb 데이터베이스를 생성하기 위해서 model 데이타베이스의 복사본을 만들게 된다. 이때 로그 파일의 크기는 1MB이며, 만약 model 데이타베이스를 변경하였다면 변경된 내용까지도 상속을 받게 된다. MDF와 LDF 파일의 경우 파일의 자동 증가는 10% 단위로 설정되고, 최대 파일 크기는 무제한 증가되도록 설정된다.

그렇다면, 늘어난 tempdb는 SQL 재가동 될때마다 초기 크기로 될까?
대답은 NO 이다
tempdb 파일의 최적 크기로 설정하고 나면 SQL Server가 재시작될 때마다 tempdb는 최적의 크기로 생성된다.!! (전제, MDF와 LDF에 모두 적용되어야 한다)



4. Pre-size TempDB - By default TempDB is created with one data file of 8MB and one log file of 0.5 MB. When SQL Server is restarted TempDB is recreated and will return to the original size. Most production systems will need much more space in TempDB. By default both data and log files of TempDB are allowed to grow automatically. Keep in mind that allowing TempDB to Autogrow will take up some system resources. After a restart a heavily used TempDB which has not been pre-sized will have to grow very frequently causing significant overhead.

It is recommend that you monitor the typical size of TempDB on your system. Once you have a good feel of the usual size of TempDB, make the TempDB data file larger than its usual size and turn off automatic growth of this data file. Ideally TempDB would reside on a dedicated disk and be pre-sized to the maximum space available.

Script to check your TempDB size and growth parameters
http://msdn.microsoft.com/en-us/library/ms175527.aspx


Change TempDB data file size (1GB)

1.USE [master]
2.GO
3.ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N'tempdev', SIZE = 1024000KB )
4.GO

Change TempDB log file size (0.5GB)

1.USE [master]
2.GO
3.ALTER DATABASE [tempdb] MODIFY FILE ( NAME = N'templog', SIZE = 512000KB )
4.GO

'Etc' 카테고리의 다른 글

Monggo PPT  (0) 2011.06.01
드뎌 한글판으로 NoSQL MongoDB 책 예판하다^^^  (0) 2011.05.23
NOSQL - MongGo DB  (1) 2011.04.26
NoSQL 에 대한 블로그 포스트 모음  (0) 2011.04.18
Mongo DB 설치 (윈7)  (0) 2011.03.15

NOSQL - MongGo DB

 

http://rockfactory.tistory.com/95

카산드라에서 몽고 DB로 변하는 것 같다

Linux + Apache + PHP + MySQL + MongoDB 이것으로 구성해야 하나 ㅠㅠ
DBA 하기 힘드넹 ㅠㅠ
아.. 배고픈 내 신세 ㅠㅠㅠ

http://ondemand.tistory.com/124
위의 링크에서 발췌


요즘 NoSQL 에 대한 관심이 무척 높다.
실시간으로 쏟아지는 데이터를 처리하기 위해서
기존 RDBMS 는 "전혀" 적합하지 않다는 것이 많은 사람들의 지론이다.
그래서 등장하는 많은 대체제 중에 NoSQL 은 이름에서 부터 이미 압박이 심하다.

NoSQL 자체가 제품 이름은 아니고 일종의 새로운 DB 형태를 일컫는 말이다.
NoSQL 제품으로 Google 의 BigTable, Amazon의 Dynamo 와 같은 것들이 유명하다.

자세한 내용은 천천히 시간을 두고 살펴보기 위해
일단 손에 걸린(?) 것들을 링크만 정리해 둬본다.

- Wikipedia 에 정의된 NoSQL : http://en.wikipedia.org/wiki/NoSQL

 

Outsider 님의 NoSQL 관련 포스팅
1. NoSQL에 대해서 #1 (http://blog.outsider.ne.kr/519)
2. NoSQL에 대해서 #2 (http://blog.outsider.ne.kr/520)

Fatazic 님의 관련 포스팅
1. NoSQL 정의와 사례정리 (http://fantazic.com/archives/517)

Channy 님의 관련 포스팅
1. NoSQL, 소셜웹 시대의 대안? (http://blog.creation.net/459

 

국산 NoSQL 솔루션
1. Cloudata (http://www.cloudata.org/)

Facebook 의 HBase 성능 분석자료
1. Facebook`s New Realtime Analytics System (http://highscalability.com/blog/2011/3/22/facebooks-new-realtime-analytics-system-hbase-to-process-20.html

 
- NoPD - 

괜찮은 사이트인 것 같다...!!
http://blog.naver.com/albertx?Redirect=Log&logNo=100117411473