|
카테고리
이전블로그
2012년 01월
2011년 11월 2010년 10월 2010년 07월 2010년 06월 2010년 04월 2010년 03월 2009년 07월 2009년 06월 2009년 02월 2009년 01월 2008년 12월 2008년 11월 2008년 10월 2008년 09월 2008년 05월 2008년 04월 2008년 02월 2007년 12월 2007년 11월 2007년 08월 2007년 07월 2007년 06월 2007년 05월 2007년 01월 2006년 09월 2006년 08월 2006년 07월 2006년 06월 2006년 05월 2006년 04월 2006년 02월 2006년 01월 2005년 08월 2005년 06월 이글루링크
최근 등록된 덧글
저도 읽어봐야겠어요 ^_^
by 티티 at 05/29 2탄인 얏타만(됐다/해냈.. by 잠본이 at 01/02 네 '잘먹겠습니다'맨 이 .. by moonknit at 12/29 이타다키만은 아마도 '.. by 잠본이 at 12/17 사실 테일즈 시리즈 중에.. by moonknit at 11/20 오랜만에 노래 잘들었습.. by 환상 at 11/11 조쉬 그로반이 부른게 .. by 시르 at 07/25 라이프로그
|
InnoDB로 테이블을 만들어서 대용량 데이터를 넣는 경우 count는 지극히 느리고(풀 스캔을 함) 게다가 insert/delete가 잦다면 속도는 바닥을 달린다. (5000만건 데이터 카운트에 2~12시간 T T)
count가 중요하면 row lock을 포기하고 MyISAM을 쓰는 방법이 좋다고 생각할 수 있지만 insert/delete가 잦은 테이블을 MyISAM으로 만들면 table lock 때문에 퍼포먼스가 떨어진다. InnoDB에서 빠르게 카운트를 하기 위해 trigger를 사용하는 방법을 생각해볼 수도 있지만 이렇게 되면 결국 MyISAM의 table lock과 동일하게 lock이 걸리므로 카운트 이외의 목적에 InnoDB가 필요한 경우가 아니라면 그냥 MyISAM을 사용하는 것이 나을 수 있다.
md5가 이상적으로 동작한다면, 즉 2^128 = (약 43억의 4승) 개의 슬롯에 데이터가 채워질 확율이 동일하다고 가정할 경우에 43억개의 데이터가 채워질 때까지 중복이 발생하지 않을 확율을 직접 연산하려면 꽤나 좋은 알고리즘이 필요하니까 대충 추론으로 계산을 해본다면.
n^4 의 슬롯에서 n개가 데이터가 채워질 때까지 중복이 되지 않을 확율을 아래와 같이 계산해본다. 2^4=16 =>(16*15)/16^2 ~ 0.9375 3^4=81 =>(81*80*79)/81^3 ~ 0.96326779454351470812376162170401 4^4=256 =>(256*255*254*253)/256^4 ~ 0.97672998905181884765625 5^4=625 =>(625*624*623*622*621)/625^5 ~ 0.9840893953572864 n의 경우 =>(n^4)!/((n^4-n)!*((n^4)^n) 그런데 md5의 경우는 n=2^32 가 되므로.... 계산이 매우 어렵다. 하지만 n이 증가할 때마다의 확율의 증가율을 보면 상당히 높은 확율이 나오지 않을까 생각된다. 아마도 0.9999~ 로 시작하는 확율이 나오지 않을까? |