우리는 yii에서 복잡한 UI로 응용 프로그램을 개발하고 있습니다. 나는 프로그래머가 아니지만 응용 프로그램 페이지로드 시간이 느린 것으로 나타났습니다.yii 다중 데이터베이스 쿼리 또는 배열
MySQL 쿼리 로깅을 설정했는데 "select x,y,z from table where id = 1
", "select x,y,z from table where id = 2
", "select x,y,z from table where id = 3
"과 같은 반복 쿼리 인스턴스가 많다는 것을 알았습니다. 이들을 단일 "select x,y,z from table where id in (1,2,3)
"으로 바꾸면 사실상 단일 쿼리 중 하나를 실행하는 것과 동일한 지속 시간이 소요됩니다. 집계 할 때 로딩 시간에서 수십 배의 면도를 줄일 수 있습니다. 루프 내에서 쿼리가 발생하는 것처럼 보입니다. where 절이 먼저 생성되고, 모든 데이터가 배열로 검색된 다음 배열을 통해 반복됩니다.
내가 이것을 프로그래밍 팀에게 지적했을 때, PHP에서 배열을 반복하면서 별도의 SQL 호출을하는 것만큼이나 느리다는 말을 들었습니다. 나는 다른 프로그래밍 언어에 대한 나의 경험을 감안할 때 이것이 어렵다고 생각한다. DAO가 쉽게 이것을 할 수있는 것처럼 보인다. 다른 문제는 복잡한 모델 인 것처럼 보입니다. 어떤 충고라도 받아 들였다.
대부분의 경우 10 ~ 20 개의 단일 호출이 하나의 코드 작성이 어려우며 단일 호출 중 하나와 동일한 지속 시간을 갖는 경우 db에 대해 수행되는 것처럼 보입니다. 따라서 문제는 코딩 작업을 수행 할 가치가 있는지 여부입니다. 우리는 HTML 페이지가 필요로하는 10-20 행을 말하고 있습니다. 즉, 즉시 사용하지 않을 데이터가 없습니다. 각 페이지는 이러한 호출을 여러 번받습니다 (총합 100). – user3438020