2009-05-14 5 views
3

MySQL을 사용하여 응용 프로그램을 작성하고 MySQL을 사용하여 MySQL의 2 개 날짜 차이를 반환하거나 PHP에서 처리하도록해야합니까?MySQL에서 얼마나 많은 계산을해야합니까?

나는 또한 모든 결과의 합계가 필요하다. 반환해야하고 PHP 측에서 추가해야한다. 그렇지 않으면 MySQL 서버 측에서 모든 결과를 함께 추가 할 수있는 방법이 있는가?

답변

4

이것은 응용 프로그램에 다소 의존하지만, 일반적으로 PHP로 푸시합니다. 일반적으로 여러 동시 액세스를위한 웹 사이트를 구축하기 때문입니다. 왜 계산을 데이터베이스에 넣고 잠재적으로 목에 걸리는가?

0

좋은 답변이 없습니다. 나는 개인적으로 가능한 한 SQL에서 할 수 있지만 할 수 있기 때문에 대부분 그렇게해야한다.

그리고 그래, 당신은 합계를 계산하기 위해 MySQL을 요청할 수 있습니다 :

SELECT id, SUM(price) FROM items GROUP BY id WITH ROLLUP 

마지막 결과는, ID를 가진 사람이 NULL과 동일, 모든 행에 대한 합계를 포함하는 것입니다.

0

수천 개의 다른 숫자가 있다면 데이터베이스 측에서 시도하려고합니다. Charlie가 말한 것은 꽤 평범한 것입니다. 저는 종종 데이터베이스에서 계산을 수행하고 서버 측 정렬을 수행해야 할 경우에 대비하여 추가 열로 추가합니다. 그러나 이것은 분명히 사용자의 경우가 아닙니다.

1

두 개의 개별적인 경우가 있다고 생각합니다. 두 값을 반환하고 계산을 수행하는 경우 중요한 비즈니스 논리가 필요한 복잡한 계산이 아니라면 프런트 엔드에서이를 수행하는 것이 가장 적합 할 수 있습니다. 복잡하거나 특수한 비즈니스 로직이 필요한 경우 비즈니스 계층이나 데이터베이스에 상관없이 일관성있게 수행되도록 논리에 대한 중심적인 위치를 가져야합니다. 두 날짜 사이의 차이점을 찾는다면 프런트 엔드에서 수행하십시오.

값을 합산하는 두 번째 경우에는 아마도 데이터베이스에서 수행되어야하는 것처럼 들릴 것입니다. 오늘날의 하드웨어에서는 네트워크가 현대 데이터베이스보다 병목 현상이 많습니다. 데이터베이스에서 행할 수있는 경우 네트워크를 통해 여러 행을 전송하여 저장하십시오.

관련 문제