2013-06-17 2 views
0

이 쿼리를 실행하면 $ from은 매우 큰 값을 가지므로 응답을 반환하는 데 너무 많은 시간이 걸립니다 (30 초 초과).LIMIT 대안

$ 행에 직접 가서 전체 데이터베이스를 통하지 않고 $ users_per_page 분량의 레코드를 반환 할 수있는 방법이 있습니까?

$query = 'SELECT * FROM users ORDER BY user_id LIMIT ' . $from. ' , '. $users_per_page; 
+7

'user_id'에 대한 색인이 있습니까? – Barmar

답변

1

user_id에 색인을 추가하면 표가 검색되지 않습니다. users_per_page가 작 으면 검색어가 빠를 것입니다.

CREATE INDEX index_users_on_user_id ON users (user_id); 
+0

감사합니다. phpMyAdmin을 통해 INDEX를 작성하려고하는데 오류가 발생합니다. 게이트웨이 시간 초과 게이트웨이가 업스트림 서버 또는 응용 프로그램에서 적시에 응답을받지 못했습니다. – user2495029

+0

내 생각에 적절한 [ MySQL 클라이언트] (https://dev.mysql.com/doc/refman/5.6/en/mysql.html). 귀하의 질문에,이 테이블이 크고이 인덱스를 추가하는 데 시간이 걸릴 것이라고 가정합니다. PHP 스크립트와 phpMyAdmin은 MySQL이 모두 완료되었다는 답변을 기다리는 동안 시간이 초과 될 가능성이 있습니다. –

+0

일단 INDEX를 만들면 쿼리가 동일 해 집니까? – user2495029