2013-02-21 2 views
1

각 페이지로드에 대해 하나의 특정 사용 점수 인 SELECT score FROM users WHERE id = 6을 가져오고 싶습니다. 이러한 변수 중 어느 것도 변하지 않을 것이며 POST/GET 데이터를 포함하지 않을 것입니다.정적 값에 대해 준비된 문을 사용해야합니까?

아직 준비된 문구를 사용해야합니까? 또는 query 기능을 사용할 수 있습니까?

+1

값을 고정하기 만하면 값이 변경되지 않으므로 쿼리 캐시 성능을 향상시킬 수 없습니다. – halfer

+0

@halfer, 필드 이름에서 값이 변하는 것처럼 들립니다. 나는 그 정보가 매번 db를 치는 대신 캐시에 저장되고 업데이트되어야한다는 것에 동의한다. –

답변

2

문제를 해결하고 쿼리 만 사용하십시오. 사용자 입력을받지 않는 한 해당 상황에서 준비 문을 사용할 필요가 없습니다.

0

나는 당신이 준비된 진술로부터 성능 향상을 얻을 수 있다고 들었습니다. 사이트에 많은 사용자가있는 경우 준비된 것을 사용하는 것이 좋습니다. 그렇지 않으면 그냥 쿼리를 사용하여 괜찮을 것입니다.

마지막으로 정보를 캐시하는 방법을 고려할 수도 있습니다. 귀하의 프로그램이 무엇을하고 있는지 확실하지 않지만 db에 대한 쿼리 수를 줄일 수 있다면 성능에 도움이 될 수 있습니다.

0

입력 내용이 변경 중이거나 사용자 입력이 아니기 때문에 쿼리를 사용하십시오.

준비된 문을 사용하는 주된 이유는 쿼리에서 사용자 입력을 올바르게 사용하려면 사용자 입력을 올바르게 포매팅하는 것입니다.

제 세계에서 검색어를 사용하면 웹 서버에 아무런 해가 없습니다.

0

항상 Prepared Statement를 사용하십시오.

이 원칙은 모든 새로운 쿼리에 대해 생각하지 않도록 도움을줍니다. 그냥 준비된 문을 사용하십시오.

성능이 우수합니까? 준비된 명령문을 사용하면 (데이터 세트에 대해 하나의 명령문을 사용하지 않는 경우) 속도가 느려지지만 ...이 성능 차이는 단일 문자열 및 이중 문자열의 문자열 성능을 비교하는 것처럼 보입니다.

P. magic number 6 대신 상수를 사용하십시오.

관련 문제