거의 암것도 모르는.. 초보인데
아래같은 쿼리문을 만들게 됐습니다.
구조는
name_list 는
price_list 는
문제는
같은 이름의 데이터에 하루에 한번씩 데이터가 입력됩니다.
name_list 의 데이터는 거의 변경이 없고 300개 정도 됩니다.
대신에 price_list에는 매일 또는 원하는날에 데이터가 입력되는데 name_list 에 있는 명단의 숫자만큼 입력됩니다
그래서 현재 2만개정도 되구요..
예상은 했지만.. 불러오는 속도가 느려지더라구요.ㅜ.ㅜ
불러올때 price의 있는값을 두번불러야 하는데 한번은 가장 최근날짜값 한번은 가장최근날짜바로이전값..입니다.
이걸 다른 방식으로 입력하는것도 시도를 해봤는데 입력 삭제 구조상 그게 안되더라구요.. 한개가 수정되면 이전값까지 다 수정될수도 없고..
여러문제로 한 필드의 값을 두번 불러오는게 답이라는 결론입니다.
방식은 price_list의 가장 최신 날짜값이 있는 데이터의 name_list를 뽑습니다
그 리스트의 코드값(두가지 코드값이 있어야 합니다..)을 기준으로 price_list에서 뽑아오는겁니다...
$sql = "select * from name_list a, price_list b
where a.wr_num=b.code2
and a.parent=b.code1
and b.date = '$last_date'
and a.opt2 = 0
order by mem_name asc
";
$result = mysql_query($sql);
위 코드로 name_list price_list 의 코드값 그리고 최근날짜값을 추출
반복문으로 아래처럼 돌려서
최근날짜값의 바로 이전값을 추출
$tmp_price = "select * from price_list
where code1 = '$code1'
and code2 = '$code2'
and date < '$last_date'
order by date DESC limit 1";
그래서 표시를 할때
이름 코드1 코드2 가격1(최근날짜값) 가격2(최근날짜값의 이전날짜값)
이렇게 표시를 하고 있습니다...
속도문제를 분명 개선해야 할거 같은데..
DB를 어떻게 조정하면 좋아질까요..
먼가 제가 설명을 못해 뜬구름 잡는듯한 질문같은데.. 부탁드리겠습니다...
|