2013-06-24 4 views
-1

내 데이터베이스에서 반복적 인 삽입으로 인해 약간의 성능 문제가 있습니다.반복 날짜에 대한 INSERT 데이터베이스에서

각 고객이 각 날의 시간대별로 시간대별로 평면 요금을 설정할 수있는 예약 웹 사이트입니다.

현재 PHP를 start_date에서 end_date까지 반복 실행하고 그에 따라 가격을 설정하지만 오랜 기간 동안 그렇게하는 데는 실제로 시간이 오래 걸립니다.

각 기간마다 가격이 같기 때문에 MySQL에 여러 개의 삽입이있는 무거운 PHP 루프를 통과하지 않고 MySQL에서 수행 할 수있는 방법이 있는지 알고 싶었습니다. 대신 하나의 쿼리 만 사용하십시오.

CREATE table disponibility (
    dispo_id INT PRIMARY KEY, 
    dispo_full_date varchar(10), 
    dispo_day varchar(2), 
    dispo_month varchar(2), 
    dispo_year varchar(4), 
    dispo_price INT 
) 

그래서 사용자는 date_from 및 DATE_TO에서 가격을 설정하고, 나는 다음과 같은 형식의 datas 필요로부터

dispo_full_date => 형식 일/월/년 날짜 dispo_day => 하루 형식 mm의 날짜에서 형식 DD 날짜가 dispo_month => 월, 형식 YYYY의 날짜에서 dispo_year => 올해 dispo_price => 가격, 단지 INT

와 것을 할 수있는 방법이 있나요 그냥 SQL? 특히 한 달의 일수가 매달 달라 지거나 2 월의 연도에 따라 달라지기 때문에 ...

답변

0

DATETIME dispo_end_date으로 표를 변경 한 다음 SELECT BETWEEN을 사용하십시오.

매일 매일을 저장하지 말고 DATE (TIME) 개 필드 (색인 포함) 만 사용하십시오.

빠른 방법이어야합니다.

+0

문제는 천천히 문제를 말한 형식으로 데이터를 필요로한다는 것입니다. –

+0

내 말은, 테이블의 데이터를 줄임으로써 동일한 양의 정보를 보유 할 수 있고, 더 빨리 수행해야한다는 것입니다. 일, 월, 연도 + 전체 날짜가 필요하지 않습니다. – DanFromGermany

관련 문제