2014-03-03 7 views

답변

2

는 시계열의 유틸리티의 명확한 아이디어를 얻을, 당신은이 결의론을 상상할 수 . DB에 수백만 개의 레코드가있는 경우 날짜 필드를 통한 검색은 쿼리가 모든 레코드를 읽고 조건을 확인하도록 강제하기 때문에 매우 비용이 많이 드는 반면 시계열 필터링은 연결된 수업 (년, 월, 시간 및 로그)을 기록하므로 날짜와 일치하는 레코드 만 읽은 다음 다른 모든 레코드는 읽지 않습니다.

CREATE CLASS Year extends V 
CREATE CLASS Month extends V 
CREATE CLASS Day extends V 
CREATE CLASS Hour extends V 
CREATE CLASS Log extends V 

CREATE PROPERTY Year.value STRING 
CREATE PROPERTY Year.month LINKMAP Month 
CREATE PROPERTY Month.day LINKMAP Day 
CREATE PROPERTY Day.hour LINKMAP Hour 
CREATE PROPERTY Hour.log LINKSET Log 

CREATE VERTEX Log SET priority='high' 
CREATE VERTEX Log SET priority='medium' 
CREATE VERTEX Log SET priority='low' 

INSERT INTO Hour(log) VALUES ([#16:0,#16:1]) 
INSERT INTO Hour(log) VALUES ([#16:2]) 
INSERT INTO Day(hour) VALUES ({'15':#15:0}) 
INSERT INTO Day(hour) VALUES ({'10':#15:1}) 
INSERT INTO Month(day) VALUES ({'4':#14:0}) 
INSERT INTO Month(day) VALUES ({'21':#14:1}) 
INSERT INTO Year(value,month) VALUES ('2012',{'3':#13:0}) 
INSERT INTO Year(value,month) VALUES ('2015',{'8':#13:1}) 

검색어 1 : 작은 예에 따라

모든 찾기 : 2012년 4월 3일 H15

SELECT EXPAND(month[3].day[4].hour[15].log) FROM Year WHERE value='2012' 

쿼리 2 날짜와 관련된 모든 로그를 찾기 날짜와 관련된 로그 21/10/2030 h10

SELECT EXPAND(month[8].day[21].hour[10].log) FROM Year WHERE value='2015' 

도움이 되었습니까?

+0

안녕하세요 @TommyK, 내 솔루션을 사용해 볼 기회가 있었습니까? – LucaS