더북(TheBook)

값이 크면 읽기와 쓰기 연산이 비효율적일 수 있다

고대 그리스의 철학자들은 절제와 중용으로 이끄는 마음 상태를 일컫는 소프로시네sophrosyne를 가져야 한다고 주장했다. 이는 키-값 데이터베이스를 위한 데이터 구조를 설계할 때도 실천해야 할 덕목이다.

리스트나 집합 같은 구조적인 데이터를 사용하는 것은 데이터를 조회하는 데 필요한 시간을 최소화하여 일부 애플리케이션의 전체적인 효율을 향상시킬 수 있다. 또한, 값의 크기 증가가 읽기와 쓰기 작업에 얼마나 불리한 영향을 미칠 수 있는지 고려해 봐야 한다. 다음과 같이 단일 값으로 고객의 주문 정보를 관리하는 데이터 구조가 있다고 해보자.


{
    ‘custFname’: ‘Liona’,
    ‘custLname’: ‘Williams’,
    ‘custAddr’ : ‘987 Highland Rd’,
    ‘custCity’ : ‘Springfield’,
    ‘custState’: ‘NJ’,
    ‘custZip’ : 21111,
    ‘ordItems’ [

  {

‘itemID’ : ‘85838A’, ‘itemQty’ : 2 , ‘descr’ : ‘Intel Core i7-4790K Processor (8M Cache, 4.40 GHz)’, ‘price:’ : ‘$325.00’ } , { ‘itemID’ : ‘38371R’, ‘itemQty’ : 1 , ‘descr’ : ‘Intel BOXDP67BGB3 Socket 1155, Intel P67, CrossFireX & SLI SATA3&USB3.0, A&GbE, ATX Motherboard’, ‘price’ : ‘$140.00’ } , { ‘itemID’ : ‘10484K’, ‘itemQty’ : 1, ‘descr’ : ‘EVGA GeForce GT 740 Superclocked Single Slot 4GB DDR3 Graphics Card’ ‘price’: ’$201.00’ } , { ‘itemID’ : ‘67594M’, ‘itemQty’ : 1, ‘descr’: ‘Rosewill Black Gaming ATX Mid Tower Computer Case’, ‘price’ : ‘$47.98’ } , { ‘itemID’ : ‘46328A’, ‘itemQty’ : 2, ‘descr’: ‘WD Blue 1 TB Desktop Hard Drive: 3.5 Inch, 7200 RPM, SATA 6 Gb/s, 64 MB Cache - WD10EZEX’, ‘price’ : ‘$63.50’ } ] }


신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.