MariaDB Æ©´×

   Á¶È¸ 1580   Ãßõ 0    

너무 길어질거 같아서 댓글로 남기네요


데이터 사용 패턴 확인 필요

사용 패턴 1 :
날짜 + x축 1개 값 + y축 1개값 인가?
SELECT *
FROM TBL
WHERE (날짜/시간 BETWEEN '2020-01-01' AND '2020-12-31 23:59:59')
    AND (X축=[X축값]) AND (Y축=[Y축값])

사용 패턴 2 :
반드시 검색 조건에 날짜가 들어가는가?

사용 패턴 3 :
주된 검색 기간이 하루 단위인지? 월 단위인지? 현재 기준 2주 단위인지?

사용 패턴 4 :
조건절에 날짜 , x축 , y축 이렇게 3개 조건이 항상 사용되는가?

사용 패턴 5 :
가장 최근 데이터 조회 위주인가? 전체기간의 데이터를 조회 하는가?

사용 패턴 6 :
DB입장에서 실행되는 SQL 이 동시에 1개인가? 다수인가?

가장 심플한 1번,2번 , 4번이 성립이 되면 아래처럼 테이블 구성 하시면 될겁니다.

컬럼명타입/길이pk정보파티션 키 정보기타
idbigintpk auto_increment
시간timestamppk파티션 키 
x축decimal(9,6)   
y축decimal(9,6)   
농도decimal(10,8)   

대신 파티션은 주된 검색 기간이 1~2개 파티션정도만 검색되도록, 월단위 또는 분기/반기/년단위로 하시면 될겁니다.

사용 패턴 2번이 성립되지 않으면, 파티션 적용은 불가능 합니다.

사용 패턴 1번이 성립되지 않으면, 성능 저하가 발생하긴 하나, 전체 작업 시간의 차이가 존재하죠
어짜피10만건 처리하는데, 10만번 호출하느냐, 10개씩 in 절을 이용하면 1만번 호출하냐 차이겠죠

파티션이 무조건 좋다고 말할수 없으며, 사용 패턴에 맞는경우에만 효과를 냅니다.
RANGE 파티션이 좋을수도 있고, HASH 파티션이 좋을수도 있고, case by case 라서,
여러가지를 고려해보세요

마지막으로, mariadb/mysql innodb 엔진이라면, data type 는 가장 작은걸로 딱 맞추는걸 추천합니다.

ªÀº±Û Àϼö·Ï ½ÅÁßÇÏ°Ô.


QnA
Á¦¸ñPage 187/5680
2015-12   1483232   ¹é¸Þ°¡
2014-05   4946571   Á¤ÀºÁØ1
2023-11   2468   ¿µ»êȸ»ó
2023-11   1854   ±¸Â÷´Ï
2023-11   3166   Çí»çÄÚ¾î
2023-11   2909   Zerr
2023-11   3289   ³ë¿¤°¶·¯°Å
2023-11   2329   »çÀå´ÔÂøÇØ¿ä
2023-11   2036   Á߸³±â¾î¿ÀÅä
2023-11   4812   ÇϾç±î¸Á
2023-11   1587   Sakura24
2023-11   1666   Á¤ÀǼ®
2023-11   1972   gusoong
2023-11   2263   Caig
2023-11   2159   ³ë¿¤°¶·¯°Å
2023-11   2707   ¾ÆÀú¾¾53
2023-11   1912   Çǹö²Ù
2023-11   2484   ¾ÆÀ×½´ÆÛ¸Ç
2023-11   1542   ¾ÆÀ×½´ÆÛ¸Ç
2023-11   1046   ¾ÆÀ×½´ÆÛ¸Ç
2023-11   2806   JCnetwork
2023-11   2578   µÎ¸¶½ºÅÍ