MySQL 내 큰 배열 데이터 어떻게 저장하는것이 효율적일까요?
본문
JSON API에서 받아온 일부 데이터를 수집하여, 배열로 만들었습니다.
[
'30754742', '30847491', '25679074', '31384093', '30744350',
'25883667', '30799710', '31068253', '23200551', '31235693',
'27789493', '31340689', '25681882', '31409897', '31223942',
'31415285', '26187086', '31451627', '30470091', '31080742',
'25657662', '24593893', '31367051', '31154461', '31385116',
'23278281', '31110559', '30975104', '25758890', '30929326',
'26275975', '27247501', '25702677', '25725157', '27723134'.....
]
이런 형식으로 저장되며, 대략 배열 길이는 100개정도 됩니다.
하루마다 수집을 할 예정이라, 처음에는 MySQL 테이블 구성을
id(Int), date(Date) 이렇게 두개만 설정하고, id값에 각각의 배열 데이터를 하나씩 저장, 그리고 date 값에는 수집할 날짜를 넣으려고 했는데, 생각해보니 하루에 한번 수집하는 데이터인데 이렇게되면 하루마다 쓸모없는 date 값 99개가 중복해서 저장되는거라는 생각이 들더군요.
그래서 대안으로 생각한것이 date(Date), data(TEXT ? VARCHAR?) 이 방식으로 저장해서 data 값에 저 배열을 통채로 넣어주고 나중에 불러오는 방법을 생각해봤는데 어떨까요?
저 데이터들은 결국 나중에 cron 작업에 쓰일예정이라 배열 형태로 유지할 생각이긴합니다.
답변 3
그냥 text필드에 넣으시면 됩니다.
불러올때 어짜피 데이터를 가공해야하니까요
select를 어떻게 할 것(데이터 이용 방법)인가에 따라 다르죠.
'수집 날짜 + 배열 값' 으로 select 할 일이 없고 단순 보관 후 cron으로 쓰실 거면 그냥 text로 저장하시면 됩니다.