본문 바로가기

전체 글74

[mongoDB]몽고디비 aggregate [mongoDB]몽고디비 aggregate 오라클에 pl/sql이 있다면 mongodb에는 aggregate가 있습니다.기존의 find로는 원하는 데이터로 가공하는데 어려움이 많이 따르는데요aggregate를 이용하면 해결할 수 있습니다. RDBMS aggregate where $match group by $group having $match select $project order by $sort limit $limit sum() $sum count() $sum RDBMS와 aggregate를 비교한것입니다. $group과 $sum으로 count를 세는 명령어 입니다. $match 부분에 써준 조건이 rdb에서 where에 해당합니다.$project 부분에는 실제로 가져올 데이터를 표시하는 부분입니다._.. 2014. 8. 5.
[mongoDB]몽고디비 기본명령어 [mongoDB]몽고디비 기본명령어 기본적인 insert입니다. 데이터를 불러올때 명령어인 find입니다.find({조건}, {불러올 데이터})id:1, age:1 의 뜻은 id와 age를 불러온다는 뜻입니다._id:0는 _id값은 불러오지않는다는 뜻입니다. $ne 는 not을 의미합니다.name중에 tyo가 아닌 데이터를 뽑아오는 명령어입니다. 위와같이 조건을 작성하는 부분에 ,를 해주면 and효과를 볼 수 있습니다.name이 taeyoung이면서 age가 20인 데이터를 뽑아오는 명령어입니다. $or 로 or를 사용할 수 있습니다.위 명령어는 name이 taeyoung이거나 age가 25인 데이터를 뽑아오고 있습니다. $gt : 20은 20보다 큰것을 뜻합니다.age가 20부터 큰 데이터를 뽑아오고 .. 2014. 8. 4.
[mongoDB]몽고디비 find() insert, update [mongoDB]몽고디비 find() insert, update 몽고디비의 기본적인 명령어 find, insert, update를 알아보겠습니다. m={ename : "smith"}ename이라는 field에 smith값을 넣을때 이러한 방식으로 데이터를 넣을 수 있는데요 m이라는 이름에 저장한뒤에 이렇게 db.things.save(m)이라고해주면 things라는 공간에 데이터가 insert된걸 보실 수 있습니다. things라는 공간에 어떤데이터가 들어있는지 확인할때 find()를 사용하면 되는데요_id는 document에 대한 유일한 값입니다. 오라클의 rowid와 비슷하죠 insert를 할때 맨위처럼 할 수 도있지만이러한 방식으로도 삽입을 할 수 있습니다. 데이터가 삽입된것을 확인 할 수 있죠 지금.. 2014. 8. 4.
[mongoDB]Collection 콜렉션 만들기 기본개념 [mongoDB]Collection 콜렉션 만들기 기본개념 RDBMS에서는 항상 데이터를 저장하기전에 완벽한 스키마를 만드는데요mongodb는 정형화되지않은 데이터를 넣을 수 있습니다. RDBMS와 mongoDB의 비교table -> collectionrow -> documentcolumn -> fieldpk -> object idrelation ship -> embedded linking정확히 일치한다고 할 수 없지만 기본개념을 이해하기위해서rdbms에 비유한 것입니다. use SALES라는 명령어를 주시면 SALES라는 공간을 앞으로 사용한다는 뜻입니다. db.createCollection("이름",( 옵션, 사이즈))위와같은 명령어로 콜렉션을 만들 수 있습니다. collection 종류capped .. 2014. 8. 4.
[mongoDB]몽고디비 기본 명령어 구동 shutdown [mongoDB]몽고디비 기본 명령어 구동 shutdown 몽고디비는 구동하는파일인 mongod.exe가 있고클라이언트로 접속하기위한 mongo.exe가 있습니다. 구동은 위처럼 mongod --dbpath C:\mongodb\test --journal이렇게 path를 설정하고 뒤에 --journal을 붙여주면 실행됩니다. --journal을 붙여주는 이유모든 데이터베이스가 그렇듯 몽고디비도 백업파일이 저장되는 곳이 있는데요그곳이 바로 journal입니다. 64비트에서는 자동으로 이 문구가 붙여지게되며32비트에서 구동하실때는 --journal을 꼭 붙여주셔야 안심하고 mongodb를 이용할 수 있습니다.journal이 없다면 장애가 생겼을때 모든데이터가 날아가겠죠 이제 mongo라는 명령어로 접속했을때 .. 2014. 8. 4.
[mongoDB]몽고디비 설치 [mongoDB]몽고디비 설치 RDBMS의 단점을 보완해 줄 수 있는 DBMS가 nosql인데요그중에서 mongodb에 대해 알아보겠습니다. 몽고디비는 humongos라는 회사에서 개발했는데요. 현재는 회사이름을 10gen에서 mongodb로 바꿨습니다.데이터타입은 json형식을 사용하며 sharding/replica, 분산,복제가 가능합니다.또한 분산 병렬처리도 가능합니다. mapreduce라고 하죠 먼저 몽고디비는 mongodb.org에 들어가시면바로 다운받으실 수 있습니다.다운받고 압축을 풀어준뒤 환경변수만 설정해주면 설치가 끝난것입니다. 압축을 c드라이브에 풀어줬습니다. 폴더명을 알아보기 쉽게 mongodb로 재명명했습니다. 그다음 bin폴더를 시스템에서 알 수 있도록 환경변수를설정해주면 설치가 .. 2014. 8. 4.
[Oracle]Server tuning 오라클 서버튜닝이란 [Oracle]Server tuning 오라클 서버튜닝이란 튜닝이라고 하면 크게 SQL튜닝과 SERVER튜닝으로 나쥡니다.SQL튜닝은 SQL문을 튜닝해 성능 개선 효과를 보는것을 말하고 SERVER튜닝은말그대로 SERVER를 튜닝해 성능을 개선하는 것입니다. 서버튜닝은 크게 Memory, DB, Resource 이렇게 3가지로 나뉩니다. 1. Memory튜닝SGA + Process = instance 튜닝이라고 오라클에서 말합니다.Shared pool영역 튜닝Data buffer cache영역 튜닝Log buffer영역 튜닝을 말합니다. 2. DB튜닝disk I/O, file튜닝을 DB튜닝이라고 말합니다. 3. Resource튜닝Lock, undo,temp Tablespace를 튜닝해주는 것을 말합니다... 2014. 7. 24.
[Oracle]Tablespace 테이블스페이스 이동 시키기 [Oracle]Tablespace 테이블스페이스 이동 시키기 테이블스페이스는 동일한 디스크에 저장하는것보다다른디스크에 분산저장하는 것이 좋은데요. 왜냐하면 i/o경합도 줄일 수 있으며문제가 생길시에 데이터가 전부 날아가는것을 방지해주기 때문입니다. 테이블 스페이스를 이동시키기 위해서는 일단 OFFLINE 명령어로비활성화를 시켜야합니다. 예제라 같은 C드라이브에 했지만 다른곳에 위치하는 게 좋겠죠.먼저 복사를 해줬습니다. 그뒤에 RENAME을 통해 옮겨진 테이블스페이스의 경로를 알려줍니다. 다시 ONLINE으로 변경하면 테이블스페이스 이동이 완료됩니다. 복사하기 전의 테이블스페이스는 제거하겠습니다. V$DATAFILE에는 테이블스페이스의 경로를 볼 수 있고V$FILESTAT에서는 각 테이블스페이스에 얼마만.. 2014. 7. 24.
[Oracle]Multi Block Tablespace 오라클 멀티블락 테이블스페이스 [Oracle]Multi Block Tablespace 오라클 멀티블락 테이블스페이스 데이터블락은 기본적으로 8k로 사이즈가 정해져 있는데요SHOW PARAMETER BLOCK 이라는 명령어로 BLOCK정보를 볼 수 있습니다.DB_BLOCK_SIZE를 보면 8192BYTE , 8K로 되어있죠그밑에 DB_FILE_MULTIBLOCK_READ_COUNT는풀테이블 스캔할때 한번에 128개의 블락을 읽을 수 있다는 뜻입니다. 9i부터는 블락사이즈를 테이블스페이스마다 다르게 지정할 수 있는데요블락사이즈를 크게하거나 작게하면 장점 단점이 어떻게 될까요. 데이터블락사이즈가 작으면 그만큼 낭비하는 헤드부분이 많아지고 대량의 데이터를 읽을때 많은 I/o를 일으키므로 성능이 안좋아질수도 있습니다. 블락사이즈를 크게한다면 .. 2014. 7. 24.