백업받아둔 mysql을 편집/머지하려고 xampp 설치해서 로컬에 mysql 환경을 만들었는데요...

 

이게 각각 파일이 행 개수가 22만개가 넘어가다 보니 용량도 20메가, 80메가씩 되어서

shell 에서 직접 mysql -u root -p test -f < name.sql 으로 가져오는데

엄청나게 오래 걸리더라구요...

 

80메가 짜리는 테이블에 등록되는 속도보니

새로고침 한번에 50개 정도씩 등록되는데... 22만개 다 등록하려면 하루종일 걸리겠더라구요

너무 가져오는 속도가 답답한데 왜 이렇게 느린거지... I/O가 느려서 그런가? 생각하다보니

xampp 설치도 .sql파일도 모두 하드에 있더라구요

 

그래서 ssd로 옴겨서 해볼까 하다가 정말 드라이브 I/O가 느려서 그런거라면 차라리 램에다가 시도해보자 생각하고

램디스크 5기가 짜리 하나 만들어서 xampp 램디스크에 재설치하고 .sql 파일도 램디스크에 올린후에

shell 에서 import 시켰더니...

 

맙소사! 새로고침 한번할때마다 약 1000~1500행이 등록되네요??

하드에서는 새로고침 한번에 50개인데 램에서는 1000개이상...??

 

하드와 램 속도의 차이가 크다는것은 잘 알고 있었지만... 몸으로 체감해보니 엄청나게 크네요

 

 

혹시 디비를 램에서 돌리는 기술도 사용되고 있을지 문득 궁금해졌습니다 ㅎㅎ

아무래도 휘발성이다 보니 클라이언트<->서버 연결만 램에서 처리되고

서버단에서는 insert/update 등이 되면 별도의 저장장치로 변경분을 append 해줘야 될거같긴한데..

일반적인 사용에서는 램까지 필요없어서 그러려나.. 아니면 2중부하가 생겨서 그럴까요?

디비를 램에 올려서 사용한다는 말은 아직 못들어본거 같네요.. ㅎㅎ

  • Lv37

    하드는 끽해야 1초에 100메가쯤 읽고 쓰는 수준이고, 램은 1초에 수십기가가 기본이지요. DB 작업 같은 랜덤 I/O가 들어가면 하드가 훨씬 더 불리하고요. 램의 R이 랜덤이라는 뜻이잖아요! ㅎㅎ

     

    PCIe 확장카드에 램 몇개 꽂아놓고 배터리를 추가해서 전원이 끊겨도 데이터가 유실되지 않도록 만든 물건이 있기는 합니다. 그러나 일반인이 쓸 일은 없을 것 같고요... 인텔에서 야심차게 추진하고 있는 옵테인이 지금보다 더 빨라지면 비슷한 역할을 수행할 수 있을지도 모르겠네요. 요즘 많이 나오는 NVMe SSD만 해도 초당 2기가를 훌쩍 넘어가니 이미 절반의 혜택은 누리는 셈이고요.

     

    그러나 DB 80메가 복원하는 데 그렇게 시간이 걸린다면 하드냐 램이냐의 문제가 아니라 xampp 튜닝 상태가 워낙 저질이라서 그럴 가능성이 더 높아 보입니다. 트랜잭션 없이 다수의 레코드를 복원하는 것은 완전 삽질이죠. ㅋㅋㅋㅋ

  • ? Lv6
    어느 주소를 접근해도 항상 같은속도인 랜덤 액세스 메모리의 힘이죠 ㅎㅎ
    물론 휘발성이 단점이긴 하지만 ㅠㅠ
  • ?
    SAP 의 S4 HANA가 램기반 DB를 사용합니다.

    inmemory DB라고 원래 있던 개념이지만 요즘들어 핫하죠 ㅎ
  • 제가 db를 램드라이브에 설치해서 사용중입니다. ㅎㅎㅎㅎㅎ